I should have worded my response differently.  I didn't mean one shouldn't use any IDE at all, but as Dan said if there is a special IDE *for that language* and otherwise one can't develop it I would stay away from it.


-----Original Message-----
From: Code for Libraries [mailto:[log in to unmask]] On Behalf Of Bill Dueber
Sent: Wednesday, January 06, 2010 9:23 AM
To: [log in to unmask]
Subject: Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?

On Wed, Jan 6, 2010 at 8:53 AM, Joel Marchesoni <[log in to unmask]>wrote:

> I agree with Dan's last point about avoiding using a special IDE to develop
> with a language.

I'll respectfully, but vehemently, disagree. I would say avoid *forcing*
everyone working on the project depend on a special IDE -- avoid lockin.
Don't avoid use.

There's a spectrum of how much an editor/environment can know about a
program. At one end is Smalltalk, where the development environment *is* the
program. At the other end is something like LISP (and, to an extent, Ruby)
where so little can be inferred from the syntax of the code that a "smart"
IDE can't actually know much other than how to match parentheses.

For languages where little can be known at compile time, an IDE may not buy
you very much other than syntax highlighting and code folding. For Java,
C++, etc. an IDE can know damn near everything about your project and
radically up your productivity -- variable renaming, refactoring,
context-sensitive help, jump-to-definition, method-name completion, etc. It
really is a difference that makes a difference.

I know folks say they can get the same thing from vim or emacs, but at that
level those editors are no less complex (and a good deal more opaque) than
something like Eclipse or Netbeans unless you already have a decade of
experience with them.

If you're starting in a new language, try a couple editors, too. Both
Eclipse and Netbeans are free and cross-platform, and have support for a lot
of languages. Editors like Notepad++, EditPlus, Textmate jEdit, and BBEdit
can all do very nice things with a variety of languages.

Bill Dueber
Library Systems Programmer
University of Michigan Library