But the layout is just one of the problems. The key staggering is also not very ergonomic. There are two cool keyboards featuring symmetric key positioning:
I personally don't suggest the truly ergonomic. While it's well designed from the outset, the underpinnings are a bit lacking. The existing firmware is buggy and has issues with Mac; and the programmable software has been promised for a while now but was never delivered. To boot, the company's support is nearly non-existent, except for - thankfully - their return process.
As mentioned by gokfar, I really look forward to the ergodox group buy
Author of The Keyboard Layout Project here. I'm familiar with Workman; it's a reasonably strong attempt, but I think it has a number of problems and fails to perform as well as Colemak or my own layouts.
Out of curiosity, do you have any references to support non-staggered keys are superior? I ask because (100 - ε)% of claims about ergonomics are completely unsupported by scientific research.
For years, I've toyed with a similar idea to this. I feel like a lot of work on this has relied on some pretty crude heuristics like "rolls" and "alternation". I think it's dangerous to overgeneralize about these, and I think it's also short-sighted because there are probably more specific patterns that affect typing speed.
So my idea was to collect data on all keystroke transitions. There are 1,089 of these on the part of the keyboard that you would optimize for. Typing 5 minutes a day at a relaxed pace would be enough time to cover each of those 8 times in a month, so collecting enough data to work with would be feasible pretty quickly. I was then going to take a big textual corpus of English, and the total of all transition times would serve as the fitness function.
I had the data collection program done, and was starting to collect data, when I decided I should redo it with triples (of which there are 35,937). Then the length of the data collection process I was looking at became really daunting, and I lost interest in the project.
What I'd quite like to do, though, would be to crowdsource the data collection using a web app. Then I could get good three-key data and not have it biased to my own personal quirks.
Hi, writer of The Keyboard Layout Project here. I'm well aware of the limitations of scoring a layout based on crude heuristics, and I'm trying to collect some good data. Right now I have some data from a few layouts that I've collected using [Amphetype](http://code.google.com/p/amphetype/), which records speed and accuracy for characters, trigraphs, and words. I'm curious, what program did you use to collect typing data?
Ideally, we would have typing data not just from QWERTY and carefully-designed layouts, but randomized layouts. All the layouts people use (except QWERTY) share design patterns—putting the most common keys on the home row, etc. We can get more accurate data if we know how people type on random layouts.
I plan on using a little grant money from my school to pay some people to learn randomized keyboard layouts and then record typing data. If anyone's willing to do this for free, I'd love to have your help; again, you can contact me by leaving a comment on my [blog](https://mathematicalmulticore.wordpress.com/).
Data collection with a web app is also a good idea. I don't plan on writing such a thing any time soon, but if anyone does plan to, I think it would be very useful.
I'm building KeyRocket bascially to help people get better with software from their behavior. I love the idea of making everybody transition to a better layout letter by letter and we could help with the data collection if it respects/protects people's privacy. What do you mean that there are 1,089 transitions?
As some already have pointed out, internationalization can be somewhat tricky on alternative keyboard layouts.
As it is, I find that languages with extra letters often move some extra symbols (like {[]}) into combinations with peripheral keys, thus making coding a chore as compared to on US keyboards.
What I would like to see is if anybody has a good way of getting rid of both the "key" and "board" part of keyboards. Electronics and manufacturing is so cheap today that this could be feasible to produce on a large scale.
For those who have a sense of rhythm, I'm thinking a combination of twisting/pushing/tapping/whatever moves that in combination would indicate a given symbol. This would take some focused effort to learn, but after that...
The form factor could be a ball, a pair of gloves, a combination with pedals, a guitar-like thing, whatever. Keyboards would make a cheap fallback in settings where such a contraption would be inappropriate.
Just what we need - yet another standard! Maybe it will be marginally better (like all the others attemps before - gogole around to see the approaches and results) - but still not enough to fully replace good old qwerty. Dvorak, with a larger support failed. How do you think it can succeed?
The advantage of being first in the market, and now having a large use based, let me think you'd need to have a solution at least 5 times better and easy to learn (less than 1 day), just for people to "consider" it due to the migration costs.
Fun story- I come from France, where everybody uses the azerty layout for some copyright reasons initially IIRC (qwerty was copyrighted, but if you switched some letters around it suddenly was not copyright infringement) and now for historical reason.
In high school, after examining the situation, I quickly decided to go with qwerty for some simple reasons :
- easier to find on new hardware (say, laptop, smartphone with a physical keyboard, etc)
- large software support (in the bios, now uefi, - not a single thing to change)
- good enough support for 8 bit chars (Brazilian Portuguese layout, us international, "canadien normalise"....)
- quick transition to different national layout (I'll be lost for some days, mostly for the commas and periods, but then I will be quickly productive)
You know the saying - you can't change others. You can only change yourself.
So I figured out the best hack was to hack my tastes, not the keyboard ;-)
qwerty might be 1 to 5% less optimal than something else - let's even say 10%. But being suported on 100% of the hardware and software makes all the difference.
Now when I need some hardware on ebay I'm sure I'll find a good qwerty solution. My french friends bitch and moan about the lack of azerty support, and the trouble it is for them to manage different keyboard layouts in their head. I wonder if that's the same for dvorak layout users.
Hardware is not a problem. Here I am, typing these words with Colemak layout on qwerty keyboard.
Software, on the other hand, is a slight annoyance. Colemak (and any other keyboard layout) can easily be available in pretty much any OS except iOS. Also, many games implement their own keyboard input handling, and disregards custom layouts.
>the trouble to manage different keyboard layouts in their head
There are two main ways to type in Bulgarian on a PC: BDS - the National standard and Phonetic - a transliteration of Bulgarian (Cyrillic) letters into English ones.
I've always hated the Phonetic as its even worse than QWERTY. In high-school I forced myself to touch-type BDS so I can use it even on keyboards that don't have it. So when I heard about Dvorak in the university, I immediately decided to learn it since I already had two layouts in my muscle memory, a third one wouldn't be a problem. Initially I was using a Dwerty layout - a Dvorak when typing, a QWERTY when issuing commands (Ctrl+C, Ctrl+V), but since it was incompatible with Windows 8 I've abandoned it and am currently running on pure Dvorak.
I think an affinity towards foreign languages helps a lot, but have no research to back it up [besides Bulgarian I learned French (age 5 - 14), German in high school (age 14-19) and English (age 10-19) and recently (26) some Swedish].
If by failed you mean widespread adoption. But I have been using Dvorak since 1999 on a variety of platforms without a problem. It's a personal success for me.
"the trouble it is for them to manage different keyboard layouts in their head. I wonder if that's the same for dvorak layout users."
It's only on extremely rare cases that I've been forced to use QWERTY (such as at a public library) and when doing so, it hasn't been hard. So I don't have to manage different layouts in my head. I only use Dvorak, and my hardware and software supports it.
That said, I don't do any heavy typing on an iPad...
I'm not trying to design yet another standard. I recommend that people use [Colemak](http://colemak.com/)—even though it's not as popular as Dvorak right now, it's easier to learn, so I think it has a better chance of overtaking QWERTY in the long run.
I design keyboard layouts because it's fun. I want to discover what it means for a layout to be the best. It's more of a scientific curiosity than a desire to make things better—although I do think QWERTY is in need of replacement.
> qwerty might be 1 to 5% less optimal than something else - let's even say 10%.
It's definitely a lot worse than that. If you're just talking about finger travel distance, for example, most modern keyboards (Colemak, [Arensito](http://www.pvv.org/~hakonhal/main.cgi/keyboard), my keyboard) do about three times better.
> good enough support for 8 bit chars (Brazilian Portuguese layout, us international, "canadien normalise"....)
> quick transition to different national layout (I'll be lost for some days, mostly for the commas and periods, but then I will be quickly productive)
This is actually very good point. The problem with qwerty is that there is no single qwerty. Almost every country has some weird variation of it (and some countries have several!). This causes problems on two fronts: 1) you need different hardware for every country, which means that niche/high-end keyboards (or laptops etc) become harder to get/use. 2) Software (and programming languages) designed to be used on US layout are pita on national layouts as punctuation etc symbols are shuffled around.
I was kind of hoping this would be a petition for keyboard manufacturers...
I still don't get how shitty keyboards are still included in laptops and keyboard designs. I mean I remember using one keyboard with a backspace key the size of a number key and one where the restart button was near home.
I question whether these keyboard layouts are ideal for programmers. On Qwerty, Colemak, Dvorak, and Workman, the symbol keys are pushed to the periphery of the keyboard. To improve practical typing efficiency, I created and use http://typing.io, which allows you to type real code instead of prose.
Nice interface, although it took me a moment to figure out that the orange background was the caret.
One nit, however: although I'm a touch typist (having learnt typing on a typewriter), I've long since trained myself to type the braces together and then cursor-left to fill in the details. This I do for ()'s, {}'s, []'s and <>'s; as well as quotes. Similarly I type the C-style /* * / comments as the pair of /'s first, cursor-left, then two *'s, cursor left and finally the comment text. It started out in this mode only when I wrote code, but now I find myself doing the same even with normal text.
Not sure how many there are like me (a senior early in my novice days showed me the practice and it stuck), but it always seemed like a simple way to ensure no dangling parens (assuming you're using "just an editor" like I do).
Could you allow for cursor-lefts to correct instead of just backspace?
Agreed. I'd like to try the colemak layout, but the various brackets and braces need to be handy for programming. Say what you will about qwerty, but at least on the US version the punctuation is decent and reasonably logical on the right.
You can use [my keyboard layout optimizer](https://github.com/MTGandP/Typing) to create your own optimized keyboard. I provide a corpus of programming text you can use, and you can change the weightings to increase the significance of the programming text. (I don't remember if I wrote documentation explaining how to do this; if you want to do this but can't figure out how, remind me and I'll write up some documentation.)
[+] [-] dsego|13 years ago|reply
But the layout is just one of the problems. The key staggering is also not very ergonomic. There are two cool keyboards featuring symmetric key positioning:
- Truly ergonomic keyboard http://www.trulyergonomic.com/store/index.php
- Type matrix http://typematrix.com
[+] [-] mifrai|13 years ago|reply
As mentioned by gokfar, I really look forward to the ergodox group buy
[+] [-] _kkcr|13 years ago|reply
It should roll around before the end of the year, group buy happens at http://geekhack.org/index.php?topic=22780.0
As for layout, I suggest Colemak with a custom alt layer such as http://forum.colemak.com/viewtopic.php?pid=5001#p5001
[+] [-] MTGandP|13 years ago|reply
If you compare Workman and MTGAP 3.14 (shown [here](http://mathematicalmulticore.wordpress.com/the-keyboard-layo...) using [my keyboard evaluator](https://github.com/MTGandP/Typing), MTGAP 3.14 performs better on every single statistic except finger work. (You can see all of the different statistics explained on [my GitHub page](https://github.com/MTGandP/Typing/blob/master/Fitness). I didn't post them all here because it takes up too much space, but if you want, you can pull the program and to the comparison yourself.)
[+] [-] mistercow|13 years ago|reply
[+] [-] mistercow|13 years ago|reply
So my idea was to collect data on all keystroke transitions. There are 1,089 of these on the part of the keyboard that you would optimize for. Typing 5 minutes a day at a relaxed pace would be enough time to cover each of those 8 times in a month, so collecting enough data to work with would be feasible pretty quickly. I was then going to take a big textual corpus of English, and the total of all transition times would serve as the fitness function.
I had the data collection program done, and was starting to collect data, when I decided I should redo it with triples (of which there are 35,937). Then the length of the data collection process I was looking at became really daunting, and I lost interest in the project.
What I'd quite like to do, though, would be to crowdsource the data collection using a web app. Then I could get good three-key data and not have it biased to my own personal quirks.
[+] [-] MTGandP|13 years ago|reply
If you or anyone else has typing data or is willing to collect some, please post a comment on my blog (preferably [here](http://mtgap.wordpress.com/2010/01/16/wanted-typing-data/)) and I will email you.
Ideally, we would have typing data not just from QWERTY and carefully-designed layouts, but randomized layouts. All the layouts people use (except QWERTY) share design patterns—putting the most common keys on the home row, etc. We can get more accurate data if we know how people type on random layouts.
I plan on using a little grant money from my school to pay some people to learn randomized keyboard layouts and then record typing data. If anyone's willing to do this for free, I'd love to have your help; again, you can contact me by leaving a comment on my [blog](https://mathematicalmulticore.wordpress.com/).
Data collection with a web app is also a good idea. I don't plan on writing such a thing any time soon, but if anyone does plan to, I think it would be very useful.
[+] [-] techiferous|13 years ago|reply
I love typing the words church, tenth, school, etc.
[+] [-] Cilvic|13 years ago|reply
[+] [-] hso9791|13 years ago|reply
As it is, I find that languages with extra letters often move some extra symbols (like {[]}) into combinations with peripheral keys, thus making coding a chore as compared to on US keyboards.
What I would like to see is if anybody has a good way of getting rid of both the "key" and "board" part of keyboards. Electronics and manufacturing is so cheap today that this could be feasible to produce on a large scale.
For those who have a sense of rhythm, I'm thinking a combination of twisting/pushing/tapping/whatever moves that in combination would indicate a given symbol. This would take some focused effort to learn, but after that...
The form factor could be a ball, a pair of gloves, a combination with pedals, a guitar-like thing, whatever. Keyboards would make a cheap fallback in settings where such a contraption would be inappropriate.
Has anyone else thought of something similar?
[+] [-] guylhem|13 years ago|reply
The advantage of being first in the market, and now having a large use based, let me think you'd need to have a solution at least 5 times better and easy to learn (less than 1 day), just for people to "consider" it due to the migration costs.
Fun story- I come from France, where everybody uses the azerty layout for some copyright reasons initially IIRC (qwerty was copyrighted, but if you switched some letters around it suddenly was not copyright infringement) and now for historical reason.
In high school, after examining the situation, I quickly decided to go with qwerty for some simple reasons :
- easier to find on new hardware (say, laptop, smartphone with a physical keyboard, etc)
- large software support (in the bios, now uefi, - not a single thing to change)
- good enough support for 8 bit chars (Brazilian Portuguese layout, us international, "canadien normalise"....)
- quick transition to different national layout (I'll be lost for some days, mostly for the commas and periods, but then I will be quickly productive)
You know the saying - you can't change others. You can only change yourself.
So I figured out the best hack was to hack my tastes, not the keyboard ;-)
qwerty might be 1 to 5% less optimal than something else - let's even say 10%. But being suported on 100% of the hardware and software makes all the difference.
Now when I need some hardware on ebay I'm sure I'll find a good qwerty solution. My french friends bitch and moan about the lack of azerty support, and the trouble it is for them to manage different keyboard layouts in their head. I wonder if that's the same for dvorak layout users.
[+] [-] flixic|13 years ago|reply
Software, on the other hand, is a slight annoyance. Colemak (and any other keyboard layout) can easily be available in pretty much any OS except iOS. Also, many games implement their own keyboard input handling, and disregards custom layouts.
[+] [-] JBiserkov|13 years ago|reply
There are two main ways to type in Bulgarian on a PC: BDS - the National standard and Phonetic - a transliteration of Bulgarian (Cyrillic) letters into English ones.
I've always hated the Phonetic as its even worse than QWERTY. In high-school I forced myself to touch-type BDS so I can use it even on keyboards that don't have it. So when I heard about Dvorak in the university, I immediately decided to learn it since I already had two layouts in my muscle memory, a third one wouldn't be a problem. Initially I was using a Dwerty layout - a Dvorak when typing, a QWERTY when issuing commands (Ctrl+C, Ctrl+V), but since it was incompatible with Windows 8 I've abandoned it and am currently running on pure Dvorak.
I think an affinity towards foreign languages helps a lot, but have no research to back it up [besides Bulgarian I learned French (age 5 - 14), German in high school (age 14-19) and English (age 10-19) and recently (26) some Swedish].
[+] [-] techiferous|13 years ago|reply
If by failed you mean widespread adoption. But I have been using Dvorak since 1999 on a variety of platforms without a problem. It's a personal success for me.
"the trouble it is for them to manage different keyboard layouts in their head. I wonder if that's the same for dvorak layout users."
It's only on extremely rare cases that I've been forced to use QWERTY (such as at a public library) and when doing so, it hasn't been hard. So I don't have to manage different layouts in my head. I only use Dvorak, and my hardware and software supports it.
That said, I don't do any heavy typing on an iPad...
[+] [-] MTGandP|13 years ago|reply
I design keyboard layouts because it's fun. I want to discover what it means for a layout to be the best. It's more of a scientific curiosity than a desire to make things better—although I do think QWERTY is in need of replacement.
> qwerty might be 1 to 5% less optimal than something else - let's even say 10%.
It's definitely a lot worse than that. If you're just talking about finger travel distance, for example, most modern keyboards (Colemak, [Arensito](http://www.pvv.org/~hakonhal/main.cgi/keyboard), my keyboard) do about three times better.
[+] [-] zokier|13 years ago|reply
> quick transition to different national layout (I'll be lost for some days, mostly for the commas and periods, but then I will be quickly productive)
This is actually very good point. The problem with qwerty is that there is no single qwerty. Almost every country has some weird variation of it (and some countries have several!). This causes problems on two fronts: 1) you need different hardware for every country, which means that niche/high-end keyboards (or laptops etc) become harder to get/use. 2) Software (and programming languages) designed to be used on US layout are pita on national layouts as punctuation etc symbols are shuffled around.
[+] [-] batgaijin|13 years ago|reply
I still don't get how shitty keyboards are still included in laptops and keyboard designs. I mean I remember using one keyboard with a backspace key the size of a number key and one where the restart button was near home.
[+] [-] chime|13 years ago|reply
[+] [-] moonboots|13 years ago|reply
[+] [-] vinodkd|13 years ago|reply
One nit, however: although I'm a touch typist (having learnt typing on a typewriter), I've long since trained myself to type the braces together and then cursor-left to fill in the details. This I do for ()'s, {}'s, []'s and <>'s; as well as quotes. Similarly I type the C-style /* * / comments as the pair of /'s first, cursor-left, then two *'s, cursor left and finally the comment text. It started out in this mode only when I wrote code, but now I find myself doing the same even with normal text.
Not sure how many there are like me (a senior early in my novice days showed me the practice and it stuck), but it always seemed like a simple way to ensure no dangling parens (assuming you're using "just an editor" like I do).
Could you allow for cursor-lefts to correct instead of just backspace?
[+] [-] mixmastamyk|13 years ago|reply
[+] [-] MTGandP|13 years ago|reply
[+] [-] cmccabe|13 years ago|reply
See http://www.utdallas.edu/~liebowit/keys1.html