You know that guy, the one that just passed you in the right-hand lane during rush hour, then swerved back in front of you, as if to say, “hey idiot! Can’t you go any faster?” You then end up tailing him for the next 20 miles. Sometimes, if he’s especially clever, he’ll try to get around a few more cars before finally dive-bombing an exit ramp from three lanes over. W00t! Good job, dude! You just shaved 15.2 seconds off your commute!
Unfortunately, we all have this same basic bit of stupidity wired into our brains. It makes you want to be in front, even when deep down inside you just know it isn’t going to get you there any faster. You see, if I can be in front of you, I get to pretend I’m in control. I get to pretend that I didn’t wake up late this morning, and that it’s all your fault I’m late for work. 
This is what I call the Illusion of Control, a principle that pops up in all kinds of places. For example, there are still a few old-school h4k0rz around who long for the ancient days of magic, wizards, and assembly programming. I actually met one the other day. During an interview for an open position at my company, one candidate commented that he missed the feeling of control that programming in opcodes gave him, and would jump at the chance to go back to pushing bits around if only he could find someone to pay him to do it.
Now, that’s hard-core. Assembly language isn’t exactly the most productive language. And in spite of popular belief, the resulting code often runs slower than what an optimizing compiler would typically generate. Not to mention the maintainenance tax you incur. Then, while you’re busy with that, the world moves on and your competitors quickly release 10 new versions of their own products using more wrist-friendly languages such as Ruby, Python and C#.
Let’s switch gears for a moment and look at another example of the Illusion of Control. It has to do with text editors, and the Illusion of Control is especially insidious in this case (look closely and you can see it smirking). For some reason, people tend to get emotionally attached to their editor of choice. I’m not sure why that is, but it does reinforce the Illusion of Control.
On one side of the table, you have things like VI and Emacs. These are glorious little programs that let you edit code faster than anyone else on the planet. All you have to do is press ESC, Ctrl-Alt-Shift-X-K, Meta-Karate-Chop and throw your mouse out the window. Bam! Done! Users of such products are the specific target market for products like this.
On the other side of the table, you have text “editors” like Notepad. Absolutely appalling. You might as well go all the way and start typing with your elbows. Or some of these. Actually, I know people who use Notepad to edit new languages that their favorite IDE doesn’t support yet. It makes me cry myself to sleep at night, just thinking about it.
Finally, in the middle of the table we have apps such as TextMate, Coda, Visual Studio, Eclipse, etc. These guys generally strive for a balance between mousing and keyboarding, allowing people to pick and choose more or less of each paradigm to suit their fancy. Not surprisingly, most of the world uses these editors.
Why, given the choices, would any sane person choose VI or Emacs? Other than the ability to run it in a text-only terminal, it’s mainly because these programs make people feel more in control (especially once they start to learn some of the more subtle commands). It’s like being part of some ancient, powerful priesthood. And when they feel more in control, they think they are going faster (or at least winning friends and influencing people). Once in a while they may actually be right. However, Bruce “Tog” Tognazzini and others have shown more than once that in general, heavy use of keyboard shortcuts only makes you think you are going faster, when the reality is quite different. That sounds suspiciously like passing cars to me. Or assembly programming. Or the latest GMail tip floating above my inbox, desperately trying to get me to use some keyboard shortcut. Curious.
So is the Illusion of Control a bad thing? I suppose it depends on your goal. If you are just trying to get things done (i.e., go faster), I think it’s better to remove all illusion so you don’t get distracted from the real bottlenecks (e.g., sleeping through your alarm in the morning is the real problem, not that the guy in front of you who is going 2 mph too slow). However, if you are looking to show off some m4d h4x0r sk7lz, or simply feel like keyboard shortcuts are better for the environment or make you a better person, go right ahead. I won’t stop you.
After all, everyone needs skills.
New! See our recommended reading list for principle-based engineering.
Nice post. I think some of the emotional attachment to specific text editors or IDEs in general is a feeling that “I’ve put so much effort into learning this environment, I can’t let anybody tell me that there is something better out there.” It’s part sunk cost and part pride (needing to justify our decision to use the particular editor that we use).
But for the record, I’m a VS guy for C# code and a Notepad++ guy for everything else. And they’re the best EVER