The Blub Paradox also applies to editors/IDEs
osteele.com
osteele.com
I suspect IDEs are like Bail Bondsmen. It may be a good sign if you don't know what they're for.
PS: It definitely can be a good thing, depending on your needs.
Do you have a special satchel full of these apt analogies? I I envy your analogical ability.
When you first starting, you don't know much of the API/features of a language, hence IDE features such as "Autocompletion", "Open Declaration", "Find References"... are extremely useful.
One of my frustration with working with Python is that none of the IDEs are that good, and methods/language features are not commented that well.
In the Java world, Eclipse + lots of code commenting = makes it insanely easy to get learn new APIs. Also, IDE's help a lot with debuging, running external tools, some automation...etc.
IDEs usually have higher learning curve (vs. a normal text editor), but make it up with the features that they provide.
It can also be great for exploring new libraries.
If you diligently refactor as you go, by replacing repeated code with functions or macros, you don't need a complicated tool to do it.
However, if you have inherited some code where the preferred reuse method is copy paste, this is much more risky. You need to be sure that you got all of the cases and that you don't inadvertently break anything. This is yet another reason to start a startup instead of getting a "real job" :).
Nevertheless, I think programming without completions sucks. I think most non-IDE editors also try to offer completions, though. It's one reason I can't stand Rails: all that passing around of parameters in Hashes is fundamentally not autocompletable.
This of course begs the question of how applicable TDD is to high-level languages (or even in general... I have my reservations). Time for me to stop pondering and get down and dirty :-).
Skip to the bottom section if you're in a hurry.
Noting the the reference to Lazlo: http://www.openlaszlo.org/ "OpenLaszlo is "write once, run everywhere." An OpenLaszlo application developed on one machine will run on all leading Web browsers on all leading desktop operating systems." Heard this before?