[CLUG-chat] Intro into programming.
hodgestar at gmail.com
Thu Aug 3 14:01:47 SAST 2006
On 8/3/06, Cayle Sharrock <cayle at chemeng.uct.ac.za> 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. These are just some
> reasons why you should use them:
I'll wade in on this one. :)
> * A lot of coding involves mechanical, "brain-dead" repetition.
Then you're doing it wrong. :)
> * 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.
Most common refactorings I'd just do through search and replace or
maybe something like sed. Less mindless refactorings I wouldn't trust
to an automated tool.
If you're using code folding, you're coding badly. Keep files,
functions and classes short.
Syntax checks: syntax high lighting does most of the checks I need.
> * 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.
Debugger in one window, text editor in the other.
> * 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. ...
Code completion is nice, but not really a must have for me. I prefer
to read the full library or module documentation so I see things at
the top which say things like "Note: this library is completely
unthread safe" and other exciting things. :)
> * Oh, and let's not forget syntax highlighting / smart indenting. Those are
> nice too.
Agreed. Don't see how this is IDE specific. :)
> So is Project management, integrated version control and so on and
> so on. That's why it's called an Integrated Development Environment.
All I'm reading here is bloat, bloat, bloat. :)
On a more serious note, a lot of IDEs have neat features for editing
code. These are indeed sometimes pretty cool. Most of the gripes I
have with IDEs are aimed at all the things they tie in which aren't
directly part of editing the code (building code, project management,
I personally try to follow the Unix philosophy of using tools focused
on doing a particular task well. I have nedit for editing text,
subversion for version control, pdb for debugging hard bugs and a
browser for reading documentation. That's pretty much the sum total of
my Python development tools.
The part of project management which deals with organising the actual
code and other project files I have a filesystem for. The part of
project management which deals with things like Gantt charts and UML
diagrams I find aren't really that useful.
Software development isn't like building car. You don't have to wait
five days for the chasis to be delivered from the factory on the other
side of the country. Asking how long it'll take to implement something
in software is like asking how long a piece of string is. Until you've
precisely defined the software (.i.e. written the code; I'll consider
a spec a precise definition when I can compile it) asking how long
it's going to take to write is asking the wrong question. What you
should be asking is "How long do we have?" and "Is it more important
to relase early or have more features?"
Since I'm already rambling, I'll stop here (release early :).
More information about the clug-chat