We don’t need no IDE!

Two quotes from a random Quora question asking for a HTML/CSS/PHP IDE:

You don’t need a full-blown IDE for web development


… you can’t go wrong with TextMate. It’s easy to use, convenient, and extensible. Plus the syntax highlighting blows everything else out of the water.

I wonder. What happened the past few years?

The 90’s and 00’s were the golden age of IDEs. No longer did you have to use plain text editors that did nothing but paint your code in colors. No longer did you have to use a command-line based debugger. No longer did you have to open up a reference manual to see what arguments that one method takes or how it works. No longer did you even have to remember what methods a string object has. No longer did you have to do Find & Replace refactoring.

But today, IDEs got a bad rap.

Since the growing popularity of dynamic languages, people seem to get the idea that IDEs are only required for those bloaty old languages like C# and C++ and oh-my Java. IDEs are, general perception seems to be, bloaty pieces of software. Resource hogs. Slow. Badly designed. Not cool.

So, the current generation of programmers — you, most likely — seems to have moved away from the languages typically associated with IDEs. You use coollanguages, like Ruby, Python, PHP and JavaScript. And cool languages don’t need no IDE. You’re pretty happy with your simple, basic text editor.

Your language don’t need no code completion — you can keep the entire API of your application in your head. You don’t need no refactoring — you no longer make design mistakes. You don’t need no debugger — because, there’s no more bugs in your software, and console.log ought to be enough for everybody. You don’t need constant analysis of your code and clearly marked warnings and errors — you’ll find the mistakes you made when it is time. You don’t need integrated API documentation — you know everything there is to know already.

But perhaps there is still a lot of opportunity for doing amazing stuff in the IDE space. Maybe an IDE can be very useful. Cool. Great. Even for dynamiclanguages.

Yeah — — maybe.