Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: How viable is it for a programmer to switch to a DVORAK keyboard layout?
19 points by jrgnsd on Jan 19, 2010 | hide | past | favorite | 51 comments
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?



I switched from Qwerty to Dvorak about 13 years ago, and frankly I don't recommend it. It's not faster, it's only marginally more comfortable, and it's mildly inconvenient. I still type Dvorak, but only because the hassle of switching back is not worth the possible tiny benefit.

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.


I switched in 1999, and I agree with mbrubeck. My experience was similar to his, except that I have to look at the keyboard when I type Qwerty and still don't type nearly as fast on Qwerty as I did before switching to Dvorak.

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


I'm about 115 WPM on QWERTY. I learned Dvorak about four years ago and got to about 80 WPM. If I kept going I think I would have eventually slightly surpassed my QWERTY speed.

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.


In my experience, yes.

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/


I will grant that typing in Dvorak could be a nice "break" from QWERTY for my wrists.

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%.


Change keyboard layouts if you have ergo problems, like I did. Don't change for speed; you won't gain any.

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.


I have found that Haskell requires a fair bit of typing. As with other interactive languages like Common Lisp, you don't get much of a break between typing in the code and learning that it's wrong. This is different from Java where you type for a while (like you're writing prose; "public static void main" is a good-sized sentence that is required but doesn't actually even do anything), and then you run your unit tests which takes 10 seconds or something. While you are waiting, you have nothing to do, and get a free typing break.

Basically, a different set of problems. Typing needs to be comfortable and efficient no matter what languages or tools you choose.


You're not going to type faster with the Dvorak layout. Maybe piano lessons would be a better use of time than Dvorak practice.

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.


Insofar as the C-x stretches the hand, this depends on the keyboard. I have a Kinesis contoured keyboard, and that chord is one finger closer together than the reach on a conventional keyboard.


There is a reason your keyboard has two Control keys; exactly to avoid the awkwardness of combinations like C-x.


Yes!

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?


I've struggled with this as well; the closest I've come to solving it was changing the keyboard layout preferences in gnome so that my right windows key now works as alt. I find that works almost as well.


Ah, thanks. I avoid keyboards with Windows keys, though; I use Ctrl and Alt so often that I don't want other keys getting in the way.


My HHKB only got one :) And Vim tends to minimize C-x gymnastics.


I also have a HHKB. It does technically have only one control key, but how often do you use the right Windows key? I just remapped it...

(And if you're a vim user, you remapped the big control key to ESC, right?)


The other control key is in a completely inaccessible position.


I use Colemak (http://colemak.com/), and I'm up to about 70 WPM (measured at typeracer.com, not anything more scientific). Unfortunately, I did no QWERTY tests before switching, so I can't compare, but I doubt I was significantly higher.

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.


Nice! Though as a vim user I would rather have a layout that messed with zxcv and instead left hjkl alone... (Colemak is especially bad, with J below K.)


Ouch, that would be a pain to use. All four of them are on the same finger, even! The problem with leaving hjkl where they are is that it wastes a huge amount of prime real estate. In colemak -- as you've seen -- those keys are used for hnei, all commonly typed letters. jkl are much less common.


Well, maybe not leaving them on home row, but keeping them grouped together nearby, maybe on the M,./ keys.


I'd suggest learning Colemak. It requires slightly less finger movement than Dvorak, the layout is more similar to Qwerty, and it's more convenient for typing commands like "ls", which requires two presses of the right little finger in Dvorak.

I can touch-type in Dvorak and Qwerty, and I've been meaning to learn Colemak.


I started using Dvorak out of curiosity more than anything. I've been using it for close to 4 years now, and I haven't noticed any speed gains.

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.


I made the switch to Dvorak over a 2-week holiday break just under 10 years ago. I may have eventually boosted my speed marginally, but I can say my hands don't get tired or sore typing for long periods as they did on Qwerty.

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 think you'll see a wide variety of responses here and the only way to know for yourself is to try it. I used Dvorak for 10 years and it worked fairly well for me, though ctrl-c/v is clumsier because you can't do it with the left hand while mousing with the right.

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.


These posts seem to come up periodically. Search hacker news for 'dvorak'.

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.


I used it for about 3 years, and it sped me up greatly when writing text, as in large blocks of English language text, it didn't help with programming at all. However before that I was only ever a 5 finger Qwerty typist, the speed gain from Dvorak came from forcing me to touch type properly.

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.


Depends. I use the "programmer dvorak" layout and it's definitely less finger-work, but you miss a few things. Cut and paste is a bit more of a hassle. I look like an idiot on QWERTY keyboards because I haven't bothered to remember it. You can practice both but it's much easier/faster to just switch.

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.


As DavidSJ noted, typing in Dvorak doesn't make programming any easier. However, there are newer generations of Dvorak such as Programmer's Dvorak (http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard#Prog...) that attempt to make it easier. I've been using plain Dvorak, because I didn't learn about the alternatives in time. I don't think the switch has made much difference either way.

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. :)


Not to be snarky but I'm curious what you're doing that you need extremely fast typing for? I rarely find that typing is my bottleneck, it's usually my brain.

That 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 type about 3x faster* than some of my co-workers, and I can tell when I'm working with them that it does make a difference.

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.


It sometimes happen, not often, that my brain needs spurts of speed from my hands, and it's then that I notice that particularly my left hand holds me back. I've taken DVORAK under consideration as it's partly designed to detangle the left hand.

I'm not sure that a valid comparison / assessment can be made after a day or two's use.


Fair enough, I should have first stated that I've never tried DVORAK (so take my advice with a block of salt). What about giving it a week then? I suppose my point was that you won't know how hard it is until you give it a shot for a little while. People all learn differently, the only way to know is to just give it a shot.


Obligatory Yegge link on typing: http://steve-yegge.blogspot.com/2008/09/programmings-dirties...

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.


I started using dvorak some years ago. I have since switched back. I don't think it helped my speed or my hands, and there were too many other costs which made it not worth while: having to set it up every time you reload your OS or start a VM, or change window managers, etc; it made the vi editor unusable, and while I mostly use emacs the ubiquity of vi makes it inevitable; using other computers in the lab became difficult, because they are shared with other people who used querty; it sometimes confused some programs and made them unusable; and so on.

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.


I use Colemak and I can still touch type on qwerty (but slower and with more errors). There is a Colemak mode for Vim and for Emacs keyboard layout doesn't really matter.


I began using Dvorak because I heard it could be helpful in reducing RSI symptoms. It took several weeks to become proficient, so I don't recommend learning Dvorak with a big deadline looming. As a programmer, the most frustrating aspect of Dvorak is cut/copy/paste because the X/C/V keys are all over the place. I imagine this would be a problem for hardcore vi users too. The benefit is that my fingers travel less, so typing hurts less.


As alternative do DVORAK you could use the NEO-Layout it has a third modifier for parenthesis an that stuff. But I think is it very dangerous to use a different keyboard layout. I used NEO quite a time and I got a bit faster than on qwertz. but sometimes i had to use other computers than mine and i this moments I were doomed. I had to use two fingers with looking on the keyboard. That was my reason to switch back.


I switched to dvorak 3 or 4 years ago after 15 or so years of touch typing on qwerty. At the time I switched I could type ~120 wpm with qwerty. It took very little time to get up to 60-70 wpm on dvorak. Now, after 3-4 years on dvorak, I can type 90-100 wpm. So my advice is similar to others here. Don't switch for speed. I have never had RSI problems, so I can't comment on that aspect.


I'm using a type-II (German) Dvorak with some custom modifications that map [({<})]> to Alt Gr+homerow (Linux)/Alt+homerow (Mac) and the caps lock key to Alt Gr and Alt, respectively. I switched for ergonomics (big improvement, no RSI pain at all) not speed; if my speed has improved, it's probably not by much, but then I don't think I've ever wished for faster typing speed.


It took me about two weeks to learn it well enough to where I could instant message my friends comfortably. I didn't notice any speed-up from the switch. I did seem to notice less stress on my fingers after a full day. Eventually I had to switch off of it because I found oscillating between QWERTY and Dvorak keyboards (for example home vs work vs friend vs lab) was annoying.


As others have said, the major benefit of Dvorak isn't speed -- it's comfort. Your fingers do a lot less work typing Dvorak than QWERTY.


Yes: I switched about 14 years ago. It took me about three (frustrating) weeks until my Dvorak speed caught up to my querty speed---it isn't noticeably faster for me---but my wrist and hand pain completely disappeared after about a week.

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.


Keep in mind though one thing;

If you use the terminal often, you'll be using TAB, and even if you switch to DVORAK you'll still have repetitive action.


Don't listen to the DVORAK people. All the things they say are just FUD with no scientific studies to back them up. There is no real evidence that it is better in terms of ergonomics or speed. If you do switch to DVORAK, you will have lots of inconvenience because the world is QWERTY.

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.


No studies?

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.


"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)


Well, the distance your fingers travel when typing Qwerty is around twice that of Dvorak. I'd be very surprised if that had no ergonomic effect.


I'd be wildly surprised if you could prove that your fingers move the same amount using both keyboards.

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.


Check out Colemak. I don't think I type much faster with Colemak but it's much more comfortable.


I just use the 0 and 1 keys and have my IDE convert to corresponding character every 8 keypresses. This way I don't have to move my fingers around at all and only need two fingers. It's a minor speedup and lets most of your fingers rest all day.


Which language/IDE are you using?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: