I've been thinking about debuggers and IDEs for some time now, and I've come to one conclusion: IDE and graphical debuggers suck. Now, don't get me wrong, I love a good editor and good IDE, and most certainly a good debugger, but I've noticed that people seem to rely too much on those niceties. Take, for example, classical VB: How much time does the typical VB developer spend debugging code? I don't know about your experience, but at least in mine, it's waaay too much time..

And I certainly believe there are far more productive things you can be doing than single-stepping through your code, like having a live (yeah, right!).

So, to be honest, it's not that I dislike IDEs. Quite the contrary, I do believe they can be great productivity enhancers. But all that time saved by using the IDE goes down the toilet if you're spending more time than it's absolutely needed on the debugger.

One of the things I like of not using an IDE, but rather just an editor attached to an external build tool (like NAnt), is that launching the debugger is such a drag, that I avoid it as much as possible. What's good about this? Well, simple: It forces me to be as careful as possible in writing out my code, and to rely as much as possible on a unit-testing framework to improve my code. I've found that this has improved my productivity quite a bit... sure, I takes more time to actually code the damn thing, but I'm, much more pleased with the resulting code, and, what's better, I almost have to do no debugging at all! How cool is that!

Of course, when you really need a debugger, you reeeaaally need it, so try to have the best one around, and learn to use it!

On the other hand, perhaps I'm just sick ;). (Love to hear what you guys think, though...).


Tomas Restrepo

Software developer located in Colombia. Sr. PFE at Microsoft.