As programmers, we should fret over our tools. Well, I don't know about everyone else, but I fret over my tools. This leads me to spend time learning tools that would cause normal people, even normal programmers, to shy away.
I'm a programmer of many languages, so I find IDE's, while helpful sometimes, are not something I can universally rely upon. For instance, I've yet to see a C development environment that is more productive than VIM and GCC on Linux, and this is not for want of looking. When I use more esoteric languages, it's often that the closest thing to editor support I'm going to get is some syntax highlighting in VIM and Emacs.
When I was a teenager being first exposed to the world of Linux, for some reason (I really don't remember why), I learned VIM first. I got pretty good at it. I could use VIM to produce C code like nobodies business. I find VIM the optimal editor for Perl coding. I have several hundred VIM shortcuts memorized. In QWERTY. In Dvorak, I know something like 20 VIM commands.
This is a problem. I've spent the last year hobbled in my VIM usage. I feel like a complete novice. I'm not even sure exactly what key to press to yank without looking at the keyboard. Advanced editing is way out of the question. It's as if I've been using the big blade on a Swiss army knife to cut cheese, leaving the other blades untouched and unused.
This is obviously not optimal. While I still beat out most other editors (except the all-mighty Eclipse/Java pair), I know my efficiency has been hurt. I know my code is suffering. I don't even try to do LaTeX in VIM anymore. So it's time for me to re-evaluate my tools.
I tried learning VIM for Dvorak. I really did. I spent a few hours running command practice. I printed a cheat sheet optimized for my Dvorak troubles. I've stuck with it for a year, hoping that I'd learn the keys by repetition the same way I did the first time. No such luck. Dvorak + VIM is an illogical beast of several hundred irrational keys to memorize. There's no core logic to the keyboard layout that justifies the common choices, and none of the keys make sense. To make matters worse, I still haven't gotten the bottom row of Dvorak imprinted into muscle-memory so I miskey unless I'm typing a word. This simply isn't working.
Which leads me to Emacs. I decided years ago that "some day" I would learn Emacs. Of course, picking up Emacs as a skilled VIM user is not really an easy task. It's about as hard as a skilled QWERTY typist switching to Dvorak. In the beginning, you spend absurd amounts of time looking up basic commands, killing your efficiency. I'm fairly certain, if I hadn't made the switch to Dvorak, I'd never get to the Emacs switch. It's a big investment, and I'm putting my time in to become proficient. I've been using Emacs extensively for three days now and I'm starting to get the basics by route. It's definitely feeling more Dvorak-friendly than VIM ever did (though that could be because I had experience with Vim in QWERTY). And overall, I'm pretty happy with the switch.
Which brings me to the point of this post. Everyone with a keyboard made in the last 3-5 years has noticed (or not) a little button on the right side that's allegedly a "menu" button. Allegedly. On occasion I've accidentally pressed it and weird things have happened, usually context menus. It's always been a mystery to me how this button made it onto keyboards, as it's clearly the most useless button ever. That is until I started learning Emacs, when I realized it's a shortcut for M-x. I think this is clear proof that there is a vast Emacs using keyboard conspiracy out there, and we should probably start protesting the Emacs-illuminate.
PS: If you read this, and you are still using QWERTY, you should hop back up to the first paragraph. The only keys that I'm not happy about in Dvorak are {}, but even that is pretty easy for me to deal with (not that I voluntarily use a curly-bracket languages any more). In all other ways Dvorak is vastly superior, and I've never heard a good argument not to use it other than "I don't feel like learning it."
Sean
Showing posts with label dvorak. Show all posts
Showing posts with label dvorak. Show all posts
Thursday, January 17, 2008
Subscribe to:
Posts (Atom)