Re: What IDE are you using?
Available news archives: comp.lang.tcl - comp.lang.python - comp.security.firewalls - sci.crypt - comp.lang.php - comp.lang.javascript
Google
 
Web news.hping.org


comp.lang.php archive

Re: What IDE are you using?

From: Andrew DeFaria <Andrew@DeFaria.com>
Date: Wed Oct 26 2005 - 01:41:31 CEST

Oli Filth wrote:

> Andrew DeFaria said the following on 25/10/2005 19:07:
>
>> Oli Filth wrote:
>>
>>> Whether the compiler and linker are built into an IDE or stand-alone,
>>
>> Huh? What are you talking about? What compiler/linkers are built into
>> which IDEs? I'm curious...
>
> Integrated, whatever, I think you knew what I meant...

No I didn't. That's why I started off with "Huh?" quickly followed by
"What are you talking about?". Those are questions indicating that I did
not know what you meant - and I still don't! I can't help it if you have
failed, once again, to clearly convey your meaning. Perhaps you should
take a stab at doing so because such unknowns are really getting tiresome.

> You yourself implied it when you implied that I was locked into MS VS
> for compilation purposes.

I did nothing of the sort. You stated above that it was somehow built
in. It follows then that in order to compile you would need the whole
package. Listen this fantasy isn't my creation - it's yours. I asked for
clarification and you conveniently neglected to provide it. Such poor
communication leaves everybody wondering what the hell you are talking
about...

>>> you still need access to a compiler/linker in order to recompile and
>>> rebuild after a code change, hence "'specialist' tools" in my
>>> earlier point.
>>
>> Having say C compiler on a machine is not what I would call a
>> specialist tool. It should be installed by default. Also, you can run
>> a C compiler from a networked location... (C is just an example here...)
>>
>> You will, BTW, need the interpreter for any of PHP, Perl, etc.
>> locally installed.
>
> Well, not strictly necessary to make code modification.

Again you are being purposely vague here. What do you mean not strictly
necessary to make code modifications?!? Go ahead and make a code
modification without PHP, Perl or whatever locally installed. Let me
know how that works out for you and how it even runs then!

>> So the point of having the necessary compiler/linker or interpreter
>> is moot. The point is, that you can indeed operate without an IDE
>> except in the rare case were the compiler/linker/interpreter,
>> whatever is actually built into the IDE (in fact I'd say none)
>
> Hmm, perhaps you're right on this one.

Ah so then you admit that compilers/linkers/interpreters are not build
into IDEs. Good. Then what were you saying before?!?

>>> It kind of goes back to the "pain in the arse" argument. I *could*
>>> write an entire application in Notepad/XEmacs/generic-text-editor,
>>
>> Of course you could. Many, many do already. In fact, as this whole
>> argument has been about, many prefer it that way and yes indeed many
>> are more productive that way!
>
> I gathered that, and I'm trying to find out how/why...

How about the things already mentioned like not being slowed down by
large monolithic applications that have cutesy ways of telling you what
to do while lacking in the real day to day functionality of a good
editor. By having to spend your time installing, updating, patching,
configuring various IDEs for your various languages instead of spending
time coding. By spending time having to learn how to do a simple task
from your old editor in this new IDE editor and finding out it just
can't do it. You know, stuff like that...

>>> it would just be a pain in the arse!
>>
>> Why would it be a pain in the arse (BTW you can say ass - we are all
>> adults here and even the FCC allows the word ass!)? I do not find it
>> a pain in the ass. In fact I find much utility in such tools. In fact
>> 2, I find more utility than I find in the pretty font, overly helpful
>> and over resource consuming, specialized IDEs.
>
> The biggest single reason I love an IDE that "understands" the
> language? Project navigation. A project with 100 classes split over an
> equally large number of source/header files, in a generic text editor,
> if I wanted to look up the the implementation of X::Foo(), I'd either
> have to remember that Class X is defined somewhere in source file Y,
> then search that file (semi)manually, or do a global search for
> "Foo()" and wade through the results. In an IDE, I click on X in
> class-view, then click on Foo(), and I'm straight there (in VS, I
> press F12 when the caret is on a call to X::Foo(), the effect is the
> same).

See tags...

> Biggest second reason - click on a compiler error message, and it
> jumps to the code in question, saves an inordinate amount of time. I
> don't actually care that the error is on Line 362 in foo.cpp, I just
> need to see the relevant code, NOW.

That's funny because XEmacs does that already...

> BTW - "Arse" is the English spelling and pronunciation - when I say
> "English" I mean the English that they speak in England ;)

Are we in England? Those English dude are so funny. I'm curious, is it
actually pronounced "ass" like us yanks or is it pronounced "are esss"?
Is it anything like colour or cheques? My god I just love the English
language... Too bad that's the only one I speak...

>>> The tools offered by the IDE greatly increase my productivity,
>>
>> Great! Then you use them! But do not tell everybody else to use them.
>
> I never did at any point in this discussion!

Aren't you putting forth the concept that if you are in a large project
then you gotta be using an IDE or you're a fool? Sorry dude but that's
specifically saying to most people that you should use this as most
people do not like to be thought of as a fool...

> Just offering my views, and attempting to learn the reasoning behind
> the alternate view/methodology. Believe it or not, I'm genuinely
> interested in what you (and others) have to say and why you do things
> the way you do.

We've said much already. Do you just not get it or do you simply
disagree with it? I'll state again: It'd be nice to have function name
completion, documentation, browsing, etc. I don't often delve into large
class hierarchies of objects with thousands of methods, calls and tons
of complexity. I've managed to do OK. I would like such functionality.
*HOWEVER*... I will not trade an editor that I find much utility in for
an IDE editor *where I lose a lot of the basic functionality I've come
to know and expect* and have to do all kinds of learning *for one
specific language of which I'm only in part of my workday* desktop up
and then have to do the same thing for the next language/IDE again and
again. I also like the ability to be able to productive without having
to have a monolithic IDE application installed on every machine I do
work on. I like small, well engineered tools that do a small job well
that I can string together over a monolithic monstrosity that does some
things well and others not so good. I like to be able to log into a
machine via a command line and still be able to churn out work without
having to have a whole gui running before I can do anything. This allows
me to create scripts to get 10's to 100's of machines churning out
productive work.

>>>> Often IDEs implement concepts of projects and other things that are
>>>> not only designed to work from the IDE, but can't work at all
>>>> unless you are in the IDE. You loose the concept of how to
>>>> construct the program outside of the context of the IDE itself.
>>>
>>> Ah, perhaps I should've been clearer - when I said "construct", I
>>> guess I meant "design", as in the design of class hierarchy,
>>> data-types, algorithms, data abstraction, etc., not the physical
>>> implementation of dividing into source files, using makefiles,
>>> source control, etc.
>>
>> Ah again, you miscommunicated.
>
> Yup! Is it clearer now?

Yes but why do we have to hash such things out? Can't you endeavor to be
clear in the first place?

>>> But then, knowing how to build a C app via the command-line, etc.
>>> doesn't really offer much insight into how to build a Java app via
>>> the command-line, nor how to perform gate-synthesis from VHDL
>>> without the IDE. (The point being that the argument that knowing how
>>> to do it from basics is a more fundamental/universally-applicable
>>> skill doesn't necessarily follow either).
>>
>> Again you've lost your knowledge of how to build without the IDE. You
>> have effectively become dependent on it and can't function without
>> it. Doesn't sound like a win to me...
>
> You missed the point I was trying to make, I think.
>
> If you know the exact nuances of command-line C compilation and
> building, utilising every single feature that makefiles afford, that's
> great.

BTW I didn't claim that I did.

> Now sit down in front of the command-line and try to build a Java app
> from source - you're back to square one, unless you sift through the
> documentation and learn the nuances of Java compilers, etc.

Not really. Java can be "make'ized" for lack of a better term. Yes I've
heard of ant - even used it once. I was not terribly impressed. Make
attempts to equally deal with C, Fortran, Ada, etc. Ant/Java seems to
leave out all the other languages except Java. Still Ant/Java can and is
done via a command line in a similar way as make so I really don't see
your point here.

> The "fundamental" knowledge of how to organise and build an app from
> basics isn't actually that "fundamental" (my term, not yours, I know),
> because you have to re-learn it for every language you use.

Maybe you do but I don't. In a previous job I was responsible for and
did build the Linux OS and toolchains including GCC, Ada, etc. All of
these ran from command line makes - efficiently and effortlessly. No you
don't have to "re-learn it for every language you use" - quite to the
contrary. And Linux, GCC and Ada are hardly trivial apps.

>>>> Take a sizable application that you use your IDE for and take it
>>>> out of the IDE. I bet you'll be surprised how it's not an easy task
>>>> to do...
>>>
>>> Isn't that more a compatability issue? Clearly a C++ project done in
>>> MS VS won't work in the Borland IDE "straight out of the box", for
>>> example.
>>
>> Figures you'd confuse this too. No I said take it out of an IDE not
>> put it into another IDE. That's irrelevant. Tell me Mr. IDE Man...
>> How do you perform automated nightly building of these large and
>> vastly different applications of an organization where X uses MS VS
>> and Y use Borland and Z uses Powerbuilder or some other such crap,
>> late at night with nobody else around on some server in the back room
>> somewhere. What do you install all of the IDEs that everybody prefers
>> because you cannot build their apps without their specific IDE, or
>> specific version of IDE? And how to you, in an automated fashion,
>> with nobody there, fire up those IDEs and push buttons from a build
>> script? Again, I'm curious...
>
> You don't need to build it on every single person's machine/IDE, do you?

Actually yes I do - sorta. In my capacity I often serve as build/release
engineer. And yes I do have to build everybody else's code. Otherwise it
doesn't get out the door. And no I don't come in at 2 Am and log onto
somebody's desktop to fire up their IDE to push a button to build their
piece of the software...

> As long as the back-office server has access to the actual source-code
> via version-control, then the back-office script (insert alternative
> here) runs whatever compiler/tools it runs, and then the results are
> available on version-control or over the network, or whatever.

Yes generally that's how most people actually build their software. That
being the case, why would you want your developer to build it in a
different fashion, thus possibly introducing bugs because the software
is built one way by the developer and yet another before it's released
out the door?

> BTW, whatever mechanism you use for writing code is just another
> member of the list {X, Y, Z} in your example above - it's just as
> compatible/incompatible as anything else.

The concept here is that you cannot automate a build process where you
are required to fire up a gui to build a portion of the software. If the
build automation is building one way then everybody else should be
building it that way too - otherwise you are not guaranteed that the
developer sees the same problem as the customer does - period!

Since the official build process will be command line driven building
from the IDE is irrelevant.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Oli Filth wrote:
<blockquote cite="midMHv7f.790$sA4.571@newsfe2-win.ntli.net" type="cite">Andrew
DeFaria said the following on 25/10/2005 19:07:
  <br>
  <blockquote type="cite">Oli Filth wrote:
    <br>
    <blockquote type="cite">Whether the compiler and linker are built
into an IDE or stand-alone,
      <br>
    </blockquote>
Huh? What are you talking about? What compiler/linkers are built into
which IDEs? I'm curious...
    <br>
  </blockquote>
Integrated, whatever, I think you knew what I meant...</blockquote>
No I didn't. That's why I started off with "Huh?" quickly followed by
"What are you talking about?". Those are questions indicating that I
did not know what you meant - and I still don't! I can't help it if you
have failed, once again, to clearly convey your meaning. Perhaps you
should take a stab at doing so because such unknowns are really getting
tiresome.<br>
<blockquote cite="midMHv7f.790$sA4.571@newsfe2-win.ntli.net" type="cite">
You yourself implied it when you implied that I was locked into MS VS
for compilation purposes.
  <br>
</blockquote>
I did nothing of the sort. You stated above that it was somehow built
in. It follows then that in order to compile you would need the whole
package. Listen this fantasy isn't my creation - it's yours. I asked
for clarification and you conveniently neglected to provide it. Such
poor communication leaves everybody wondering what the hell you are
talking about...<br>
<blockquote cite="midMHv7f.790$sA4.571@newsfe2-win.ntli.net" type="cite">
  <blockquote type="cite">
    <blockquote type="cite">you still need access to a compiler/linker
in order to recompile and rebuild after a code change, hence
"'specialist' tools" in my earlier point.
      <br>
    </blockquote>
Having say C compiler on a machine is not what I would call a
specialist tool. It should be installed by default. Also, you can run a
C compiler from a networked location... (C is just an example here...)
    <br>
    <br>
You will, BTW, need the interpreter for any of PHP, Perl, etc. locally
installed.
    <br>
  </blockquote>
Well, not strictly necessary to make code modification.
  <br>
</blockquote>
Again you are being purposely vague here. What do you mean not strictly
necessary to make code modifications?!? Go ahead and make a code
modification without PHP, Perl or whatever locally installed. Let me
know how that works out for you and how it even runs then!<br>
<blockquote cite="midMHv7f.790$sA4.571@newsfe2-win.ntli.net" type="cite">
  <blockquote type="cite">So the point of having the necessary
compiler/linker or interpreter is moot. The point is, that you can
indeed operate without an IDE except in the rare case were the
compiler/linker/interpreter, whatever is actually built into the IDE
(in fact I'd say none)
    <br>
  </blockquote>
Hmm, perhaps you're right on this one.
  <br>
</blockquote>
Ah so then you admit that compilers/linkers/interpreters are not build
into IDEs. Good. Then what were you saying before?!?<br>
<blockquote cite="midMHv7f.790$sA4.571@newsfe2-win.ntli.net" type="cite">
  <blockquote type="cite">
    <blockquote type="cite">It kind of goes back to the "pain in the
arse" argument. I *could* write an entire application in
Notepad/XEmacs/generic-text-editor, </blockquote>
Of course you could. Many, many do already. In fact, as this whole
argument has been about, many prefer it that way and yes indeed many
are more productive that way!
    <br>
  </blockquote>
I gathered that, and I'm trying to find out how/why...
  <br>
</blockquote>
How about the things already mentioned like not being slowed down by
large monolithic applications that have cutesy ways of telling you what
to do while lacking in the real day to day functionality of a good
editor. By having to spend your time installing, updating, patching,
configuring various IDEs for your various languages instead of spending
time coding. By spending time having to learn how to do a simple task
from your old editor in this new IDE editor and finding out it just
can't do it. You know, stuff like that...<br>
<blockquote cite="midMHv7f.790$sA4.571@newsfe2-win.ntli.net" type="cite">
  <blockquote type="cite">
    <blockquote type="cite">it would just be a pain in the arse!
      <br>
    </blockquote>
Why would it be a pain in the arse (BTW you can say ass - we are all
adults here and even the FCC allows the word ass!)? I do not find it a
pain in the ass. In fact I find much utility in such tools. In fact 2,
I find more utility than I find in the pretty font, overly helpful and
over resource consuming, specialized IDEs.
    <br>
  </blockquote>
The biggest single reason I love an IDE that "understands" the
language? Project navigation. A project with 100 classes split over an
equally large number of source/header files, in a generic text editor,
if I wanted to look up the the implementation of X::Foo(), I'd either
have to remember that Class X is defined somewhere in source file Y,
then search that file (semi)manually, or do a global search for "Foo()"
and wade through the results. In an IDE, I click on X in class-view,
then click on Foo(), and I'm straight there (in VS, I press F12 when
the caret is on a call to X::Foo(), the effect is the same).
  <br>
</blockquote>
See tags...<br>
<blockquote cite="midMHv7f.790$sA4.571@newsfe2-win.ntli.net" type="cite">Biggest
second reason - click on a compiler error message, and it jumps to the
code in question, saves an inordinate amount of time. I don't actually
care that the error is on Line 362 in foo.cpp, I just need to see the
relevant code, NOW.
  <br>
</blockquote>
That's funny because XEmacs does that already...<br>
<blockquote cite="midMHv7f.790$sA4.571@newsfe2-win.ntli.net" type="cite">BTW
- "Arse" is the English spelling and pronunciation - when I say
"English" I mean the English that they speak in England ;)
  <br>
</blockquote>
Are we in England? Those English dude are so funny. I'm curious, is it
actually pronounced "ass" like us yanks or is it pronounced "are esss"?
Is it anything like colour or cheques? My god I just love the English
language... Too bad that's the only one I speak...<br>
<blockquote cite="midMHv7f.790$sA4.571@newsfe2-win.ntli.net" type="cite">
  <blockquote type="cite">
    <blockquote type="cite">The tools offered by the IDE greatly
increase my productivity, </blockquote>
Great! Then you use them! But do not tell everybody else to use them.
    <br>
  </blockquote>
I never did at any point in this discussion! </blockquote>
Aren't you putting forth the concept that if you are in a large project
then you gotta be using an IDE or you're a fool? Sorry dude but that's
specifically saying to most people that you should use this as most
people do not like to be thought of as a fool...<br>
<blockquote cite="midMHv7f.790$sA4.571@newsfe2-win.ntli.net" type="cite">Just
offering my views, and attempting to learn the reasoning behind the
alternate view/methodology. Believe it or not, I'm genuinely interested
in what you (and others) have to say and why you do things the way you
do.
  <br>
</blockquote>
We've said much already. Do you just not get it or do you simply
disagree with it? I'll state again: It'd be nice to have function name
completion, documentation, browsing, etc. I don't often delve into
large class hierarchies of objects with thousands of methods, calls and
tons of complexity. I've managed to do OK. I would like such
functionality. <b>HOWEVER</b>... I will not trade an editor that I
find much utility in for an IDE editor <b>where I lose a lot of the
basic functionality I've come to know and expect</b> and have to do all
kinds of learning <b>for one specific language of which I'm only in
part of my workday</b> desktop up and then have to do the same thing
for the next language/IDE again and again. I also like the ability to
be able to productive without having to have a monolithic IDE
application installed on every machine I do work on. I like small, well
engineered tools that do a small job well that I can string together
over a monolithic monstrosity that does some things well and others not
so good. I like to be able to log into a machine via a command line and
still be able to churn out work without having to have a whole gui
running before I can do anything. This allows me to create scripts to
get 10's to 100's of machines churning out productive work.<br>
<blockquote cite="midMHv7f.790$sA4.571@newsfe2-win.ntli.net" type="cite">
  <blockquote type="cite">
    <blockquote type="cite">
      <blockquote type="cite">Often IDEs implement concepts of projects
and other things that are not only designed to work from the IDE, but
can't work at all unless you are in the IDE. You loose the concept of
how to
        <br>
construct the program outside of the context of the IDE itself.
        <br>
      </blockquote>
Ah, perhaps I should've been clearer - when I said "construct", I guess
I meant "design", as in the design of class hierarchy, data-types,
algorithms, data abstraction, etc., not the physical implementation of
dividing into source files, using makefiles, source control, etc.
      <br>
    </blockquote>
Ah again, you miscommunicated.
    <br>
  </blockquote>
Yup! Is it clearer now?
  <br>
</blockquote>
Yes but why do we have to hash such things out? Can't you endeavor to
be clear in the first place?<br>
<blockquote cite="midMHv7f.790$sA4.571@newsfe2-win.ntli.net" type="cite">
  <blockquote type="cite">
    <blockquote type="cite">But then, knowing how to build a C app via
the command-line, etc. doesn't really offer much insight into how to
build a Java app via the command-line, nor how to perform
gate-synthesis from VHDL without the IDE. (The point being that the
argument that knowing how to do it from basics is a more
fundamental/universally-applicable skill doesn't necessarily follow
either).
      <br>
    </blockquote>
Again you've lost your knowledge of how to build without the IDE. You
have effectively become dependent on it and can't function without it.
Doesn't sound like a win to me...
    <br>
  </blockquote>
You missed the point I was trying to make, I think.
  <br>
  <br>
If you know the exact nuances of command-line C compilation and
building, utilising every single feature that makefiles afford, that's
great.</blockquote>
BTW I didn't claim that I did.<br>
<blockquote cite="midMHv7f.790$sA4.571@newsfe2-win.ntli.net" type="cite">
Now sit down in front of the command-line and try to build a Java app
from source - you're back to square one, unless you sift through the
documentation and learn the nuances of Java compilers, etc.</blockquote>
Not really. Java can be "make'ized" for lack of a better term. Yes I've
heard of ant - even used it once. I was not terribly impressed. Make
attempts to equally deal with C, Fortran, Ada, etc. Ant/Java seems to
leave out all the other languages except Java. Still Ant/Java can and
is done via a command line in a similar way as make so I really don't
see your point here.<br>
<blockquote cite="midMHv7f.790$sA4.571@newsfe2-win.ntli.net" type="cite">
The "fundamental" knowledge of how to organise and build an app from
basics isn't actually that "fundamental" (my term, not yours, I know),
because you have to re-learn it for every language you use.
  <br>
</blockquote>
Maybe you do but I don't. In a previous job I was responsible for and
did build the Linux OS and toolchains including GCC, Ada, etc. All of
these ran from command line makes - efficiently and effortlessly. No
you don't have to "re-learn it for every language you use" - quite to
the contrary. And Linux, GCC and Ada are hardly trivial apps.<br>
<blockquote cite="midMHv7f.790$sA4.571@newsfe2-win.ntli.net" type="cite">
  <blockquote type="cite">
    <blockquote type="cite">
      <blockquote type="cite">Take a sizable application that you use
your IDE for and take it out of the IDE. I bet you'll be surprised how
it's not an easy task to do...
        <br>
      </blockquote>
Isn't that more a compatability issue? Clearly a C++ project done in MS
VS won't work in the Borland IDE "straight out of the box", for
example.
      <br>
    </blockquote>
Figures you'd confuse this too. No I said take it out of an IDE not put
it into another IDE. That's irrelevant. Tell me Mr. IDE Man... How do
you perform automated nightly building of these large and vastly
different applications of an organization where X uses MS VS and Y use
Borland and Z uses Powerbuilder or some other such crap, late at night
with nobody else around on some server in the back room somewhere. What
do you install all of the IDEs that everybody prefers because you
cannot build their apps without their specific IDE, or specific version
of IDE? And how to you, in an automated fashion, with nobody there,
fire up those IDEs and push buttons from a build script? Again, I'm
curious...
    <br>
  </blockquote>
You don't need to build it on every single person's machine/IDE, do
you? </blockquote>
Actually yes I do - sorta. In my capacity I often serve as
build/release engineer. And yes I do have to build everybody else's
code. Otherwise it doesn't get out the door. And no I don't come in at
2 Am and log onto somebody's desktop to fire up their IDE to push a
button to build their piece of the software...<br>
<blockquote cite="midMHv7f.790$sA4.571@newsfe2-win.ntli.net" type="cite">As
long as the back-office server has access to the actual source-code via
version-control, then the back-office script (insert alternative here)
runs whatever compiler/tools it runs, and then the results are
available on version-control or over the network, or whatever.
  <br>
</blockquote>
Yes generally that's how most people actually build their software.
That being the case, why would you want your developer to build it in a
different fashion, thus possibly introducing bugs because the software
is built one way by the developer and yet another before it's released
out the door?<br>
<blockquote cite="midMHv7f.790$sA4.571@newsfe2-win.ntli.net" type="cite">BTW,
whatever mechanism you use for writing code is just another member of
the list {X, Y, Z} in your example above - it's just as
compatible/incompatible as anything else.
  <br>
</blockquote>
The concept here is that you cannot automate a build process where you
are required to fire up a gui to build a portion of the software. If
the build automation is building one way then everybody else should be
building it that way too - otherwise you are not guaranteed that the
developer sees the same problem as the customer does - period!<br>
<br>
Since the official build process will be command line driven building
from the IDE is irrelevant.<br>
<br>
</body>
</html>
Received on Mon Nov 21 02:50:07 2005