Ask HN: How viable is it for a programmer to switch to a DVORAK keyboard layout?
I'm currently typing at a speed where I can physically feel that the layout of my keyboard is slowing me down. I've played with the idea of switching to DVORAK in the past, but the fears of major slowdown has kept me back.
Is the initial slowdown worth the long time gain?
51 comments
[ 3.2 ms ] story [ 72.5 ms ] threadThat said, why not give it a shot for a day or two? At worst, you'll realize it is going to take forever to regain speed - at best, you're well on your way to using the new layout.
I'm not sure that a valid comparison / assessment can be made after a day or two's use.
Typing is definitely the bottleneck for me in some situations, especially when I'm prototyping something, and I can hit 100 wpm without too much difficulty.
As for giving it a several day test drive, I don't think that's going to help at all. The point is that once you know dvorak it is faster than qwerty. It would probably take a least of month of dvorak to be able to make a reasonable evaluation.
They don't even try do to exploratory programming. In cases where I would just write some throwaway code for an experiment, or turn to a REPL session to answer a question in a few seconds, they start leafing through documentation or Googling for someone else who knows the answer. I write and re-write code while I'm thinking; once they start writing they are unwilling to change their minds mid-stream. Even in normal "batch" programming, it means that instead of 5 minutes of thought followed by 1 minute of typing, they have 5 minutes of thought followed by 3 minutes of typing - so they take longer to resume their stream of thought, and spend slightly less time thinking overall.
*I type about 60wpm which is not especially fast, it's just that I work with some people who are not touch-typists.
However, what I found was Dvorak is designed for English; it predates programming. Most programming languages are designed with QWERTY in mind. I think Dvorak made that harder, not easier.
I don't think there is a long-term gain to be had. Read http://reason.com/archives/1996/06/01/typing-errors for an account of the qwerty myth.
Oddly enough, the change that has caused the greatest increase in typing speed for me was starting to use my netbook keyboard. Most people will find this insane, but the smaller keyboard decreases finger travel, so as long as your fingers are small enough to continue typing with precision it ends up being a plus.
I think it's pretty meaningless to worry about typing speed being a productivity problem while programming. I can type at 120 wpm, but only 85 wpm while typing composed English, and about 35 wpm typing code. It's much more about brain latency. :)
The layout is better for programming, though, so I recommend learning it. Underscore and hyphen are in the perfect place, and having the comma and period keys on the upper row is nicer for the hands.
Dvorak is a lot better for Emacs, too, if only because C-x stretches out the hand instead of scrunching it up.
I've become ignorant of the benefits of Qwerty, though. For some period of time, I got annoyed by the positioning of Ctrl+C and Ctrl+V, but eventually I just got used to using two hands for those commands. That's the one specific lingering annoyance that I can think of.
(And if you're a vim user, you remapped the big control key to ESC, right?)
Speaking of which, anyone happen to know how (in X and at the Linux console) to make both my Alt keys act like Alt keys instead of one being AltGr?
It's inconvenient to use other peoples' computers; although, this is offset a bit by the amusement value of watching others try to use my machine.
The claims about ergonomics may be valid. My hands move a lot less when using Dvorak, but I can't speak as to whether the chances of RSI are reduced in any way by this, or if it provides any kind of relief.
Programming-wise, I haven't had any problems. The biggest concern there is that you might not be able to type for the first week or two.
Unless you have some significant reason to do so, I don't think I would recommend switching myself. I didn't see any significant gains, but your mileage may vary.
If you are finding that your keyboard is slowing you down while you code, though, consider changing your tools -- get a new programming language, or a new IDE. A concise language like Haskell requires very little typing, but you end up thinking about each line for a long time. If you're using Java with a plain text editor, consider switching to Eclipse; I find that Eclipse ends up entering about a third of the code that I author.
Basically, a different set of problems. Typing needs to be comfortable and efficient no matter what languages or tools you choose.
2 things made me abandon dvorak and switch back to qwerty. Keyboard shortcuts. I never got the hang of mentally mapping between individual keys, so I when I had to push a Ctrl-X for example, I would have to stop and think for too long trying to work out which one X is.
The other thing was pair programming, was a pain switching back and forth when grabbing and relinquishing the keyboard. Sometimes pair programming meets enough resistance as it is without my stupid keyboard layout adding to it.
Another bonus, is that with qwerty you can work single handed, and e.g. hold the baby or eat or use the mouse or whatever.
So right now I am back to my 5 finger qwerty, its slower for example for things like this message, but the bulk of what I do is just typing in little bits of text and source code here and there so the speed loss is acceptable.
If I were typing in large blocks of English text for a living I would switch back to dvorak, but for a programmer qwerty is better.
Actually, if you are one of those programmers that use the mouse to use menu items, and never use shortcuts, you might be ok with dvorak.
Furthermore, if you actually switch back even for a few minutes once a week or so, your Qwerty typing won't atrophy much at all.
However, I wouldn't bother switching unless you're pretty sure that you're going to be spending several hours a day typing, and mostly on the same small number of computers. Reconfiguring any modern computer back and forth between Qwerty and Dvorak is easy, but it's completely maddening for anyone with whom you share a computer.
The very real advantages of sticking with the world standard greatly outweigh any imaginary advantages of changing layout. Your best bet is to just get a better keyboard, physically speaking.
http://www.dvorak-keyboards.com/Dvorak_vs_qwerty_keyboard_te...
Remember: A study need not be published in a journal and well-typeset to be scientific.
Even better, as programmers we can write scripts to compare layouts and calculate whatever statistics we want to. aAfew years ago, contemplating the switch to Dvorak (not really to optimize typing efficiency, I was getting twinges in my wrists and the doc said they were early warning signs of RSI) I wrote a ruby script to compare a given body of text against both Dvorak and Qwerty layouts and then I ran it against a few years of code I had on my machine. The Dvorak layout showed a significant decrease in amount of finger movement, especially movement off the home row. Good enough for me.
It took me about a month to get back to my original typing speed. I don't have to use other people's computers often so it works for me.
my 2 cents. (oh yeah no more wrist pain. fwiw)
You'll note my answer above (below, whatever :) says "depends". If you move machines a lot, bad idea. If you do a huge amount of keyboard work on your own machine, good idea. There's no one answer, but it really made sense for me.
I switched to Dvorak a couple years ago, and I've been glad I did. I used to have terrible pain in my wrists and forearms. For eliminating pain, switching to Dvorak was as effective as switching to an expensive ergonomic keyboard.
I went cold turkey, so I felt like a stroke patient for the first four days. It was a very awkward and frustrating feeling. Within a week, I could type fast enough to code. (Coding doesn't require a fast typing speed.) It took about two weeks to get back to email/IM speed.
I'm probably not as fast as I was at QWERTY (110 wpm -> 90 wpm), but I'm certainly fast enough. If I do 15 years on Dvorak, I'll probably reach 110 wpm again.
I'd recommend doing an hour of typing exercises each day, and napping after each exercise to let it sink in. Each time I woke up from a nap, I was much better at the exercise from before the nap.
I wrote up my experience on my blog if you're interested:
http://matt.might.net/articles/preventing-and-managing-rsi/
On the other hand, I just typed in Dvorak briefly and I've already confused my QWERTY typing. Just going to Dvorak for 3 minutes, after a ~2-3 year hiatus, has temporarily slowed down my QWERTY by ~25%.
I'm happy with my decision because it's one short decision and affects the rest of my typing life - ie forever. The reduced impact on my fingers and wrists seems worth it.
The initial slowdown lasts only a few weeks if you work on your typing speed. When I first learned Dvorak I lost the ability to touch-type Qwerty, but within the first year I retrained myself and was able to switch back and forth (though I'm still not quite full speed on Qwerty). The only thing I can't do is use Vi keybindings in Qwerty. They seem to be in a different part of my muscle memory, which has never been retrained.
Key bindings are the biggest pain point for me. I recently spent some time using the Awesome window manager, and I had to remap a bunch of its key bindings, because they didn't make any sense with a Dvorak layout. I'm sure the default emacs key bindings make less sense to me than they do to a Qwerty typist. I also agree with mbrubeck that using key bindings on a Qwerty keyboard is much harder than just typing.
Overall, switching just isn't worth the hassle. In fact, every time the topic comes up, I consider switching back to Qwerty, but I'm too busy to e.an ,cyd yd. ecoypajycrbv
If you use the terminal often, you'll be using TAB, and even if you switch to DVORAK you'll still have repetitive action.
I can touch-type in Dvorak and Qwerty, and I've been meaning to learn Colemak.
The only con I've run into is when I have to use somebody else's computer, like during a presentation in a meeting and I end up basically hunting and pecking on Qwerty. I get looks like, "this guy is a developer?" One time when I explained I was a Dvorak keyboardist, a participant asked if I also spoke Esperanto. (I don't.)
However, I highly recommend the switch just for the brain-remapping experience. Going through the learning process literally feels like a mental rewiring.
I ended up going back to querty in order to revert to hunt and peck (painful) due to wrist issues. Now I continue with querty on a very low impact keyboard with a "pawing" approach. My typing is slower this way, but it appears that independent finger motion is what does me in.
I'd recommend it. There are a few modifications I'd make, but overall it's quite nice. They've written programs to check finger travel distance, and it beats QWERTY and Dvorak. A reason to choose it over Dvorak is that it keeps WAZXCVB in the same place, so those common Ctrl-keys are just as easy to press.
There's several versions for Windows, including one that can be run off a flash drive, and work without installation (http://colemak.com/Windows), and Colemak is also built in to X on Linux.
Although depending what you're doing, switching to an alternate keyboard layout can be a problem. For example, if I were a sysadmin, going around to different computers and fixing them, it would be infeasible to switch, unless I put the time in to being able to context-switch my brain quickly, so I could touch-type both.
I've used Dvorak for three years or so. I like it, and it hasn't caused me problems. (FWIW, I use Emacs.) I type 95ish WPM on Qwerty, and haven't cared to time my typing on Dvorak - I type fast enough, either way. I switched as a precaution for RSI (and just to shake up old habits), and the layout feels less awkward than Qwerty. Seriously, ; on the home row?
Some people seem to believe that the failure of the Dvorak keyboard proves their economic ideology. Whatever.