To IDE or not to IDE

The debate of IDE or no IDE usually boils down to static or dynamic, or to helpful or getting things done. Right now, I tend to agree with both sides.

I work as a .NET programmer using Visual Studio 2010 by day, but during evenings and weekends I do mostly Ruby/Python/JavaScript in TextMate on my beat-up old white MacBook. The Mac is so slow it freezes for a second or two when I scroll to the next page in a PDF, so a heavy IDE is out of the question. Since I spend a lot more time at my day job than I do at spare time hacking, I am much more accustomed to the IDE way.

Speed and crutches

The major points are speed and editor help. Visual Studio is slow but helps you out a bit more (refactorings are soooooo easy), TextMate is fast but doesn’t reach out its hand when you are making mistakes. So when using a text editor I find myself spending a lot more time duckduckgoing (yes, I verbalized “DuckDuckGo”, so what? (yes, I verbalized “verb”, so what?)), reading through documentation or correcting stupid spelling errors.

Example: last night I mistakenly typed “.” instead of “_” in a method call, which gave me absurd error messages to the point where I felt compelled to cook dinner instead. I would have discovered and corrected this in a matter of seconds in Visual Studio. But Visual Studio is huge and requires a performant machine, otherwise you’ll spend a lot of time swearing and waiting.

Watching Zed Shaw code confirms my thoughts. He is an experienced text editor programmer and his workflow is much more chopped up than mine in Visual Studio. There is a lot more pausing because you don’t remember a method name and have to go to the documentation, which interrupts your current thought process (“what is a customer, really?”) and replaces it with another one (“what arguments are needed?”). I don’t know if this is good or bad, but it is a difference that I still am adjusting to.

Not only am I less experienced with TextMate than with Visual Studio, I am also a bit of a special case, since my internet connection is very unstable. I sometimes experience weeks without online access in my home. This makes duckduckgoing around a huge bottleneck. I’ve downloaded books and downloaded API documentation and guides with wget, but sometimes that documentation is not enough and I get stuck on very trivial problems for a long period of time.

So, Visual Studio makes coding more fluent, but seeing your work requires waiting. TextMate makes coding less fluent, but you see the results of your work much faster. Which is better?

Messy code

There’s the argument that people using IDEs as crutches make messy code, since they don’t have to think as hard about the structure. I don’t know whether this is true or not, but see Avdi’s post on the messiness of legacy Rails applications compared to static ones. I’m pretty sure the apps he mentions were not written in Eclipse.

A lot of very smart people prefer to work without the crutches of IDEs. Maybe the case is that young programmers, that don’t yet have the complex thought patterns that come with experience, make complete messes without an IDE, whereas more experienced programmers are better off without them.

Conclusion

I make a bit of an unfair comparison, since I am much more accustomed to Visual Studio. But I like both, I use a gargantuan IDE for static code and a lightweight text editor for more dynamic code. Just like everybody else. There is no winner in this war, there are only different tools for different jobs.

This blog post was written in TextMate, not Visual Studio. Go on, comment about how that means something.