Vim addicts, or Eclipsaholics, Visual Studients... There are as many IDE religions as there are IDEs. People crow about text completion and automatic refactoring, speedy text manipulation, and how quickly they can navigate between files. Their productivity, they happily say, is much higher with their editor of choice.

I think “productivity” is actually really bad if you’re a programmer. Writing lots of code quickly is not a good thing. You shouldn’t be writing more than a few lines of code per day. And if your editor is helping you write a lot of code really quickly, it’s encouraging you to write bad code.

I don’t want a productive editor, I actually want an editor that is a pain in the ass.

I want my editor to make me write everything out. I want to think “ugh. I have to type all of this crap again?”

Why? Because it puts pressure on me to refactor. I don’t want to laboriously type all of those words, and my editor won’t help me. So I find a better design that lets me do more with less code. I’ll write a helper module, or a new framework. That’s where frameworks come from: people who didn’t want to type a bunch of crap over and over.

I want my editor to make it difficult to find methods. Because then I have to actually think about where things should go. I have to structure my work so that things are in sensible places, code is easy to read, and files are easy to scan. I have to write good documentation so that I and my team members know where to look.

I don’t want my editor to refactor my code. I want it to be the lazy employee that goes out and smokes a cigarette while I do all the refactoring myself. Why? Because if I have more than a handful of references to one thing, it probably means that thing is handling too much. I don’t want to be able to easily rename a hundred method calls, because why the hell am I calling a method from a hundred different places? I want the fear of complexity to loom above me at all times.

Give me a cursor and some arrow keys and I’m a happy hacker.