Handwritten versions: Page 1; Page 2.

The keyboard is the favored tool of the programmer. And why not? As an input device the keyboard has served us very well. I am pretty fast on a keyboard as a means of entering data. However, is the keyboard a good editing device? I have doubted this for some time now. In particular, I doubt whether a keyboard is the best means by which to accomplish many text editing tasks.

I am not suggesting that all editing tasks are better done with a mouse, just that some common tasks are completed more efficiently using mice or touchscreens. I would group these tasks under the umbrella of “Selection and Navigation.”

I consider use of arrow keys, Emacs' f, b, p, and n movement paradigm, and other keyboard shortcuts designed to move the insertion point set distances, to be misguided and inefficient.

Put simply, the mental overhead and time lost on sub-optimal combinations of keystrokes means that too much time overall is lost to keyboard navigation to make it worthwhile. Pointing devices just win if you need to quickly move or select blocks of text.

My evidence is video games. You find plenty of keyboard use in games, but when it comes to arbitrary selection and navigation, you find the mouse, and not the keyboard sitting comfortably on the throne.

I am not suggesting that programmers give up their favorite text editor, but I am suggesting that text editors spend more effort on providing a streamlined mousing experience in the same way that editors like Acme and Sam of Plan 9 fame make the mouse an integrated part of the editor, and not just an additional afterthought.