Arnt Gulbrandsen
About meAbout this blog

I learned something today: Why IDEs suck

Wrote colleague A to colleague B: With all due respect, suggesting anything other than an IDE today for coding is not reasonable. IntelliJ IDEA, Eclipse, NetBeans, whatever. Still running circles around your stone-tablet-tech editors ;) So, I don't understand why you would want anything less.

But B could suggest anything other, and wanted less, and he's one of the two best programmers on the team, too.

A, hm, a lively discussion ensued. What I learned:

An editor reacts predictably to key input. Pressing = inserts =, pressing Enter inserts a linebreak and perhaps some indentation.

An IDE often reacts unpredictably. Pressing Enter may insert this, or that, or do something clever. ÜberDWIM completion may insert extra text, hopefully desirable, but essentially unpredictable. It's necessary to spend valuable brain capacity on what the IDE does.

Editors don't require the programmer to spend a whole second on moving one hand to the mouse in order to perform a routine operation. IDEs often do.

Many IDEs like to open windows, often diverting the keyboard focus, and habituating the user to waiting for the IDE instead of typing exactly as fast as the brain goes.

IDEs show lots of things on the screen. Editors (such as I prefer) use almost all of their pixels to show code.

A really good programmer is one whose mind melts into the code, and the IDE conflicts with that. In MVC terms: It restricts the eye's view of the code, it disturbs the fingers' manipulation of the code, it impairs the mind's ability to melt into the code.

I hate IDEs. They frustrate me and I'm not very tolerant. It was good to learn some actual reasons to justify that.

On the other hand, IDEs have some desirable features. Type-sensitive completion, documentation access, blah. And it sounds at least possible to write an IDE that uses its pixels well and doesn't get in the way of fast typing, so IDEs don't have to suck.