[CLUG-chat] Intro into programming.

Neil Blakey-Milner nbm at mithrandr.moria.org
Thu Aug 3 13:27:44 SAST 2006


On Thu 2006-08-03 (12:37), Cayle Sharrock wrote:
> > This isn't strictly about the choice of language, but it is 
> > tangentially related.  I suggest *not* using an IDE; 
> 
> I'm going to disagree completely and say this is bad advice. IDEs were
> developed to make programming easier. End of story.

That's not a particularly useful statement.  I've lived life without any
number of gadgets that claim to make my life easier.  I've tried gadgets
that have made that claim, and many of them rarely have made my life
easier - some have even made it harder.

>  * A lot of coding involves mechanical, "brain-dead" repetition. This is
> part of the syntax of any language; some more than others. All good IDEs
> have 'Code template' features that do all this monkey work for you, thus
> saving you time, AND reducing silly bugs. 

If you're using a compact and concise language, it may be more work to
use the IDE than to type it in yourself.  It may be easier to just use a
text editor (like vim) with a macro than a full IDE.

>  * Furthermore, the REALLY neat IDEs have even more time-saving features,
> like refactoring,code folding,syntax checks, and even rudimentary logic
> checks (google to find out what these terms mean) - Eclipse can do all of
> this, btw.

Eclipse when used for Java is very good at these sorts of things.
Support for refactoring (actually, that's such a misnamed feature -
refactoring isn't supposed to change the names and call signatures of
functions, after all) of dynamically typed languages is rare, though.

>  * It's MUCH easier to debug code from an IDE. If someone tells you that the
> only debugging tool you need is the print statement, just smile and back
> away slowly. For a novice, I'd bet that you could slice at least 90% off
> your debugging cycle (the amount of time fixing bugs in your code) by going
> with an IDE. And I challenge any expert coder telling me that their debug
> cycle is FASTER using log/prints or a standalone debugger than an integrated
> one. Please, pull the other one.

There's a lot of debate around this.  I've debugged everything from
kernels to little scripts, written in C to PHP (ug!), and there are
points where IDEs are useful and when they're not.

When using a B&D language like Java, it's _such_ a time-saver to use
something like Eclipse.  If only to catch those exception signature and
handling errors.  But the debugging of programs run from application
servers was a mission.  Sometimes it was simpler to just revert to
printing.

When using other languages, it's less obvious.  I got to become good
friends with gdb when I was doing kernel work.  I haven't seen an IDE
that would've helped me in that endeavour.

When your language offers an interactive interpreter, it's even less
obvious whether a full-blown IDE wins you anything.  In fact, often it's
just in the way.

>  * Code completion. This is the NUMBER ONE reason to use an IDE. I can't
> tell you how many hours this feature has saved me over the years, but I'll
> guess: Literally hundreds. Can't remember everything the THTMLBrowser class
> can do? No worries. Code Completion. Type THTMLBrowser, a fullstop, and a
> little box pops up giving you all the procedures and functions that class
> can perform. That is ultra-nifty. With text editors, your only option is
> sitting with the reference manual (usually in a browser) that you have to
> wade through to get to the right place. Hell, you can't remember if it was
> THTMLBrowser or THTMLLoader or something like that? Code completion to the
> rescue again! You type in THTML, hit the CC key sequence (usually
> Ctrl-space) and all possible alternatives will pop up (ah! THTMLReader!). So
> easy, you begin to wonder why coders make R250/hr+

I really can't say I agree that it's the number one reason to use an
IDE.  Because, frankly, even when I do have it, I hardly ever use it.
When I don't have it, I don't mind not having it.  (Also, with an
interactive interpreter, it's not far away at all.  And then I can test
what I'm trying to do interactively before commiting it to code and
running.  A huge win.  Much more than code completion.)

> * Oh, and let's not forget syntax highlighting / smart indenting. Those are
> nice too. So is Project management, integrated version control and so on and
> so on. That's why it's called an Integrated Development Environment.

In this context, what's "Project Management"?  A standard programmers
text editor can do the rest trivially.

Neil
-- 
Neil Blakey-Milner
nbm at mithrandr.moria.org
http://mithrandr.moria.org/


More information about the clug-chat mailing list