There are many keyboard layouts. Some claim to be better than Dvorak layout. 〔☛ Dvorak, Maltron, Colemak, NEO, Bépo, Turkish-F, Keyboard Layouts Fight!〕 For languages other than English, then improving on Dvorak is significant. However, for English languages, even for programers, improving on Dvorak seems to be a lost cause. This page tells you why.
Patrick Gillespie wrote a web app at http://patorjk.com/keyboard-layout-analyzer/. The app is very simple and visual oriented. It takes a input text, and computes simple distances and finger frequency among 5 layouts: {QWERTY, Dvorak, Colemak, Capewell, Arensito}. Plus, it also generates a new layout that is optimal for the input text you used.
Major Problem: The site only compare simple measures such as distances, row positions, and finger ease. It does not take consideration of ease of digraph, hand alternation, etc. (⁖ try to type “mommy you ok” in QWERTY.)
Michael Capewell, author of the Capewell layout, wrote a software Keyboard Evolve, that uses evolutionary algorithms to arrive at a optimal layout. http://www.michaelcapewell.com/programming/keyboardevolve.htm. Here's a quote:
Unfortunately, I have yet to find the holy grail of keyboard layout evolution parameters! Things are complicated by there being a fundamental difference in how curved, ergonomic keyboards and plain, rectangular keyboards are used — the way I see things, they have different home “rows.” This program works best for ergonomic keyboards. I'm in the process of finding the right balance between the two…
The moral here is: What keyboard hardware you use has more impact to hand health than layout.
carPalx (at http://mkweb.bcgsc.ca/carpalx/) is a site dedicated to studying efficiency of keyboard layouts. The site is created by a Martin Krzywinski, a bioinformatics scientist.
The study assumes English language, and assumes the standard PC keyboard physical key layout. It uses computation and statistics to find a best model of efficiency measurements, then evaluate the different layouts. carPalx is the most thorough study on keyboard layout efficiency and quite technical. You can spend several days studying the site.
When you study keyboard layout as carPalx did, one thing quickly becomes obvious. The difficulty in creating the “most efficient” isn't about computing distances or gathering statistics, but finding the proper metrics (i.e. what to measure with respect to a goal). For example, what weight should you give to minimizing distance of finger travel, ease of digraph, alternating hands, avoiding single-finger repetition?
According to him, the layouts from best to worst are: QFMLWY, QGMLWB, QGMLWY, Colemak, Dvorak, Capewell, Arensito, QWERTY. See: Full Optimization - Q*MLW* Layouts @ mkweb.bcgsc.ca….
MAJOR flaws of carPalx study:
Keyboard layout studies on the web always assume the common PC keyboard's physical key layout.
It's easy to write computer program to compute the various frequencies and distances of the PC keyboard's keys. It is also easy to create a keyboard layout. But it is difficult to invent a different physical key layout that fixes some serious PC keyboard problems. Thus, all online layout studies simply focus on shuffling of the keys of the PC Keyboard.
The PC keyboard physical-keys layout has several major flaws with respect to ergonomics. For example, the {Enter ↵, Tab ↹, ⌫ Backspace}, are most frequently used keys but requires the pinky to press. In particular, the {Tab ↹, Enter ↵, ⇧ RShift, ⌫ Backspace} keys require the pinky to stretch over 1 column of keys. If you are using a European keyboard 〔☛ QWERTZ, AZERTY〕, then there's 2 extra columns of keys for your pinky to strech over to reach Enter ↵. 〔☛ Keyboard Hardware Design Flaws〕
You might think that these keys are not used that often. But most keyboarding activities are not input of letter characters, especially in computer programing. Most of the time you are editing. You use editing keys such as {↑, ↓, ←, →, ⌫ Backspace, Enter ↵, Tab ↹} or emacs/vi keys, more often than some of the letter keys. From statistical study of emacs commands, the percentage of editing related key presses is 48% of all key presses! 〔☛ Emacs's Command Frequency〕
` 12345 67890 -=
qwert yuiop []\
asdfg hjkl; '
zxcvb nm,./
Another problem of PC keyboard's physical-keys layout is that the right hand has 5 more letter/symbol keys than the left, and all of them are pressed by stretched pinky. Especially important for programers, some of these keys are: {[, ], {, }, =, +}. These keys are used more often than z, for example. Also, the key alignment are unnaturally jagged.
From my recent experience, if you just type the Enter ↵ key and Tab ↹ keys all day, just these two keys and nothing else, on a standard PC keyboard, with hands at touch-typing positions, say do it once every second, for 8 hours, you'll get RSI fast. 〔☛ Programer Hand Health: vi Esc Key Syndrome〕
Many programers claim they type all day. They may be sitting in front of the computer all day, but the time their fingers actually dance on keyboard is probably less than 1 hour per day.
Contrast data-entry clerks. They are the real typists. Their fingers actually type, continuously, for several hours per day.
It is important to get a sense of how much you actually type. This you can do by logging you keystrokes using a software.
Let's assume a pro typist sustains at only 50 wpm in a normal work day. 50 wpm is 250 strokes per min, or 15k per hour. Suppose she works 8 hours a day, and assume just 3 hours actually typing (not counting meeting, lunch, phone, errands, interruptions.). 15k × 3 = 45k chars per day. With this figure, you can get a sense of how many hours you actually type per day.
I sit in front of computer on average 13 hours per day for the past several years. I program and write several blogs. My actual typing is probably double of average day-job programers. From my emacs command frequency log for 6 months in 2008, it seems i only type 17k strokes per day. That means, i only type 70 minutes a day!
I was quite surprised how low my own figure is. But thinking about it… it makes sense. Even though we sit in front of computer all day, but the actual typing is probably some small percentage of that. Most of the time, you have to lunch, run errands, browse web, read docs, chat on phone, run to the bathroom. Perhaps only half of your work time is active coding or writing (emails; docs). Of that duration, perhaps majority of time you are digesting the info on screen. Your whole day's keystrokes probably can be done in less than 30 minutes if you just type continuously.
If your typing doesn't come anywhere close to a data-entry clerk, then any layout “more efficient” than Dvorak is practically meaningless.
vi users often develop RSI due to vi Esc key Syndrome. Emacs users may develop the Emacs Pinky Syndrome due to key combinations.
From a study of Emacs's Command Usage Frequency, statistically more than 50% keystrokes are for editing commands (⁖ moving cursor, deleting words). For most programers, less than 50% of keystrokes are entering letters.
So, if you are a programer, the layout for command keybinding are perhaps even more important than the layout of the letter keys.
If you are using standard straight PC keyboard or laptop keyboard, it would be far more significant in efficiency and hand health to switch to a ergonomic keyboard than using some improved Dvorak layout.
For some choices of keyboard that improve the PC keyboard physical key layout, see: Ergonomic Keyboards Gallery.
I think the primary reason people might choose Colemak over Dvorak is because 2 things:
If you have a problem with the Undo Cut Copy Paste keys on Dvorak, the easiest solution is just map them to {F1 F2 F3 F4}. You should do this anyway, because key-combination strains your hand.
On Apple's OS X, there are Dvorak layout but with QWERTY modifiers. This way, you don't have to relearn your shortcuts muscle memory. Same for Linux. But see also: Linux: Keyboard Layout, Keymapping, Keybinding, Tools.
I do not recommend using the Z X C V keys on QWERTY. These keys are easy to remember because they are close together, but is not ergonomic. Especially the Z and X, typed by pinky and 4th finger, on bottom row. On Dvorak, the positions for Z X C V are overall slightly better, but not much. For a detailed account on how the Z X of QWERTY caused me RSI problems, see: The Roadmap to Completely Replace Emacs's Key System.
As for the painful transition for those already touch-type QWERTY, i don't think there's a way out. I was QWERTY typist employed as a data-entry clerk in 1992. It took me 2 months to relearn touch typing on Dvorak, and i remember the process is extremely painful. (See: Dvorak Keyboard Layout and My Experiences) If you are going to retrain your muscle memory, you might as well go with the more universal Dvorak. It is a ANSI Standard; builtin in Windows and Mac OS X, with wide support from all keyboard related devices today. I think it's silly to save one month of relearning for something you use for the rest of your life.
Designing a keyboard layout is one of those things nerdy engineers or hobbyists love to do. It's like a purity trap. They smell “design” and “efficiency” and they fell into the hole. They spend months, years, on something that has little practical implication. See the story on how another wanted to improve on Colemak: Colemak vs Workman.