Which keyboard layout is the best for you?

keyboard.jpg

Keyboards and their layouts are definitely one of the pieces of computer hardware that have a lot of controversy around them. Some people swear by the Cherry MX mechanical switches while some others think that clone switches work just as fine and there is no reason to go for the genuine ones. I'll just skip the debate about the switch types (reds vs. blues vs. clears vs. greens vs. etc.). In addition to the type of the switch, keyboards have different layouts with their die-hard fans. People even have argued how using the traditional QWERTY layout causes carpel tunnel syndrome and other injeries. On the other hand learning to use a new layout, especially if you were trained with QWERTY and type extensively, has a very steep learning curve and a lot of people would just give up. Because they feel what they gain in return is not worth crushing their productivity.

I spend 90% of my time behind a computer (and sometimes the remaining 10% behind a laptop!) and despite being careful with my posture, at some point I realized that I feel pain radiating from my wrist to my arm. So I started doing some research about what are the probable causes of that pain and how to stop it. Of course the first solution (after ergonimics) that I came across with, was "Use another layout". So I made the big decision and started to use dvorak and I am not gonna lie; I liked it and I still do, although obviously productivity plummeted at the beginning. However, I was always curious that how much of a "real" difference it would make for "me" because of the type of the work that I do.

So, I wrote some code to visualize my key stroke map on the actual layout based on my files on git and I'd like to share the results with you folks. I looked at the maps separately for C++, Python and Tex files and the results are very interesting:

C++

  • QWERTY:

    qwerty_cpp.png

  • Dvorak:

    dvorak_cpp.png

  • Colemac:

    colemac_cpp.png

  • Workman:

    workman_cpp.png

Python

  • QWERTY:

    qwerty_py.png

  • Dvorak:

    dvorak_py.png

  • Colemac:

    colemac_py.png

  • Workman:

    workman_py.png

Tex

  • QWERTY:

    qwerty_tex.png

  • Dvorak:

    dvorak_tex.png

  • Colemac:

    colemac_tex.png

  • Workman:

    workman_tex.png

Thoughts:

  • Looking at C++ maps, the right hand will have a lot of trouble with mainly Workman layout, since basically all the rows are used. Colemac is a little bit better but still not good. To me, Dvorak seems to win because of high stroke rate of the home row and also because of the fact that "-" is placed at the home row.
  • For Python, Workman and QWERTY look almost in the same ball park. I feel Dvorak is superior again.
  • For Tex, Colemac seems to be the way to go. I would imagine that I can live with Workman too. Next is definitely Dvorak and QWERTY looks to be the last option.

Conclusion:

  • It is absolutely impractical to use different layouts for different languages. So for me, Dvorak looks to be the best option between them.
  • I believe Dvorak has the steepest learning curve becuse almost all of the keys are replaced, which is another thing to consider.
  • I use my keyboard for even navigating web plus all the crazy emacs key strokes. So it would be interesting if I log all of my presses and then see the difference.
  • C++ is REALLY bad for my health, no matter what layout I choose, so I'll try to avoid it as much as possible.

You can find the code here and see which layout hypothetically works better for you.

Let me know what you guys think. Would you switch to a new layout? Is it really worth the time, energy and frustrations?

Comments

Comments powered by Disqus