Wednesday, October 17, 2007

Why Is It That If You Use An IDE You Aren't A 'Real Programmer'?

I was perusing dZone and I ran across an interesting blog post that applies the Pareto Principle to software developers. I agree with most of the sentiments shared by the author, but one thing got me:
"The 80% folks make up the bulk of the software development industry. They’re not stupid; they’re merely vocational. They went to school, learned just enough Java/C#/C++, then got a job writing internal apps for banks, governments, travel firms, law firms, etc. The world usually never sees their software. They use whatever tools Microsoft hands down to them — usally VS.NET if they’re doing C++, or maybe a GUI IDE like Eclipse or IntelliJ for Java development."
You see this opinion again and again in the nerdoblogosphere, and it's one of the silliest things you can say that would distinguish an accomplished programmer from an "80 percenter". I would consider myself part of the 20% that this author is referring to. I make decisions for my team to develop or refactor software that has direct impact to literally millions of students around the world. At my company we have a ton of really smart "Alpha developers" as this post refers to them. Guess what? All of them use Eclipse.

We don't use Eclipse because we are part of some herd that is shepherded through our careers by the big players like Microsoft, Oracle, BEA, IBM, or the Eclipse Foundation. We do it because it's easier. We do it because we could try to remember the exact method calls on String, and which argument does what, but we don't really feel like it. We do it because it allows us to refactor throughout a large codebase without pulling our hair out. We do it because we like the plugins that all those awesome "20 percenters" developed for us. We do it because we can use the debugger to figure out the problems that we would otherwise spend hours fixing by sifting through System.out.println() statements.

I can understand why people would postulate that IDEs make programmers lazy. This can be true in some respects. You should probably learn how to build programs and compile and execute at the command line. You certainly shouldn't be doing builds out of them, or using them as a production deployment tool. Some people can be misled into thinking that an IDE is all they need. That's not true at all, but writing good software is not just a matter of what tool you use (or don't). You can write terrible software in any editor, even vi! It's about understanding the business requirements, understanding how your users use the system, and how to create code that is easily reused and easily maintained. I just think that having a better holistic view of your codebase makes a world of difference. There are too many advantages to using IDEs to NOT use them.

But I could be wrong =)


lapsed cannibal said...

Yeah, I agree. And, in general, the geekosphere's "my editor is better than your editor" thing is just really weird. You don't see it so much anymore, but I gather that the emacs/vi wars were epic indeed, back in the day. What a strange business this is.