Reflection an a Decade and a Half on Dvorak
I have now been typing using the Dvorak keyboard layout longer than I have used QWERTY. It’s been over 15 years since I first switched and probably a decade since I moved to the even more niche Programmer Dvorak Layout. As the year winds down (and I am in currently in quarantine) I figure I’d take some of this idle time to write a little bit, and this is where my head is at today. Who knows, there may be some interesting take-aways from this. On the other hand, it may just be 1000-or-so words of “brain droppings” as George Carlin would say.
Origins
We love folklore, especially the apocryphal sort that makes for good, pithy tales of wisdom. The space pen vs pencil urban legend is a great example. Right up there are the tales of the origin of the QWERTY keyboard layout. I have done a fair amount of research on this topic and cannot find any definitive proof that the origins of the layout were to “slow down typists” or to avoid the type hammers from colliding and becoming jammed. Another theory is that the layout was an early attempt at “vendor lock-in” so typists proficient with one brand would be likely to stay with that brand. Either way, we have long known the QWERTY layout is neither efficient nor ergonomically optimal.
Neither Mario, nor Mavis Beacon taught me to type. I learned in the early 90s on IRC and telnet-based talkers. The pace of conversation on these channels meant my fingers had to learn how to keep up… and fast. By the time I first sat in an actual “typing class” in the mid-90s (do such things still exist?) I could already break 100WPM.
By around 2007 I was approaching 20 years of my hands being mostly on keyboards and symptoms of RSI were beginning to set in. I had been vaguely aware of the Dvorak layout for awhile but never seriously looked at it until I saw several people claim that switching had eliminated their RSI issues. I didn’t relish the idea of wearing a wrist brace for the next 40 years, so I took the plunge.
The Innovation
So the story goes, August Dvorak set out to deliberately design a better keyboard layout. His work began with a study of the physiology of the hands and frequency analysis of the English language. The work began with the goal of placing the most frequently used letters on the “home row” of the keyboard. This was further refined by analyzing digram (adjacent pairs of letters - e.g. st th nt etc.) frequency and optimizing the layout such that keystrokes would naturally alternate between hands maximizing typing parallelism where possible, and otherwise organizing common digrams such that they can be typed with a single hand with keystrokes moving from the pinky finger towards the index. If you attempt to drum your fingers on the table, you’ll probably notice that is is easier to drum in that direction (pinky-to-index) than the other way around.
The net result was a keyboard that, in theory, allowed one to type faster, more accurately, and with less fatigue over time. The original Dvorak layout had the numeric characters in non-sequential order but the Dvorak layout we now know today is actually the simplified Dvorak layout.
I’m a geek with a pro-innovation bias, so I chose to adopt the innovation.
Retraining My Brain
By this point, I had well over a decade of muscle memory hardwired into my digits and I knew the switch would not be an easy one. The challenge is compounded by the fact that, although I changed my keyboard map in my OS, the only physical keyboards I had access to all sported qwerty keycaps. I had hoped I could just reposition the keycaps but it turned out that the caps on different rows had slightly different shapes. Hunt-and-peck was not an option to make the switch but this was probably for the better.
Memory is an interesting thing. For whatever reason, our memory is a write-on-read medium, meaning the act of recalling something from memory is what cements that memory in the future. We’re optimized to store that which we remember, and memories that are sufficiently infrequently accessed will eventually be garbage-collected. I needed a reference, however, so I printed out the layout and folded it into a make-shift table tent and placed the reference layout behind my keyboard.
At first the experience was agonizing. Every key I intended to type required me to stop, try to remember where that key was now located on my keyboard, receive the mental equivalent to a cache-miss, and reference my cheat-sheet. This was–and I cannot emphasize this enough–extremely disruptive to my productivity. The act of typing became an endless stream of mental context-switches. The good news was that is was short-lived. By the end of the day, I could throw away my reference. By the end of the week, I could type at a modest 30 wpm. Keyboard shortcuts, it turned out, belonged to a different set of muscle memory that required separate training. I know many a dvorakian who use a custom layout that retains the usual ctrl-c ctrl-v etc. keyboard shortcuts in their original place.
For the next couple of weeks, my typing speed slowly crept up back toward the 60wpm mark and soon I was typing faster than anyone else I knew. It’s just a shame that my brain–and not my fingers–was the bottleneck.
Having spent some time in Dvorak keyboard communities, I soon learned about the programmer Dvorak layout - a set of modifications introduced to optimize the keyboard for those who type code for a living.
Having tackled the truly monumental task of learning the core layout, the switch was largely incremental. With programmer Dvorak, common punctuation is shifted from the bottom row to the top row, special characters ([]{}()=*) are moved into more optimal positions on the numeric row and dominate, the numeric keys are in the shifted position (since, as programmers, one would assume we type parens and operators more often than magic numbers). Also, the numeric keypad is inverted but helpfully includes ABCDEF in the shifted position of 123456 respectively to make it very easy to type in hex values. In some ways, the change to the numeric row was harder.
Looking Back - The Good, The Bad, The Ugly
The Good
Let’s start with the good. I have not had any RSI symptoms in 15 years. My wrists and hands are pain-free even after many long-days at the keyboard. Second, I can type fast, faster than any non-stenographer I know and, unfortunately, faster than I can think.
I also have some geek cred that I can flex from time to time. My ego likes this.
One more good thing - it is very difficult to shoulder surf a password when I am typing. Security through obscurity, I know, but it is enough for someone to move on.
The Bad
At one point I had this fantasy that I would somehow become the keyboard equivalent of bilingual; that I could switch back and forth seamlessly at will. It doesn’t work that way. By the end of my retraining process, my neurons had irrevocably rewired. This also means that I can’t use anyone else’s computer effectively without first monkeying with the system settings (which is generally considered rude). Pairing and mobbing (where a single computer/keyboard is shared between two or more coders) becomes a problem with non-dvorakians. To prevent a lifetime ban in many coding mobs, I have a standing rule that every time I step out of the driver role, if I leave the layout on programmer dvorak I owe everyone involved a dollar per instance. This has cost me a lot of dollars.
You can’t game effectively on dvorak. WASD wields far too much political capitol to be overturned. While some apps allow you to remap your keys, enough have been built assuming qwerty and you just have to switch layouts.
In short, I pretty much have to keep dvorak and qwerty loaded at all times. My OS has a default key combo of ctrl-shift to cycle through layouts but my editors also use a lot of ctrl-shift-_something_ shortcuts that if I hesitate, the keyboard layout will shift on me alh ;fhhdlpt kja; g; ,jak Gzm ktglue (translation: “and suddenly this is what I’m typing.”)
The Ugly
Because I use such a non-standard keyboard, my current home keyboard is a Das Keyboard Ultimate 4 (the one with the all-black keycaps). Since I touch-type anyway, I don’t need the incorrect labels… except when I do.
Occasionally I find myself in a situation where I need that qwerty reference. Perhaps I am remoting into a vm or server that doesn’t have my layout setup yet and I need to type a password. Oh, and by the way, I often have no way to unmask the characters on that password box so I’m probably locking out my account. I’ve experience weird behavior using remote desktop tools as well, where characters double-convert (e.g. I type an H which is in the position of J on a QWERTY keyboard, which gets sent as a keystroke to the J position on the keyboard, which is a C on QWERTY) it’s weird and confusing. Also, I’ve been known to leave hanging remote desktop sessions running which somehow attach to the next person connecting and they can’t type anymore.
Arguably the most irritating fact of the Dvorak layout is the placement of the ‘V’ key… right next to the ‘W’. That might seem innocuous at first, until you try to type ctrl-v (paste) and accidentally type ctrl-w (close window). This happens to me daily.
Conclusions
Dvorak is an interesting case-study of the innovation-diffusion process. It’s interesting, however, because it is really a one-way decision. Discontinuation of the innovation is not a viable option. I’m not sure if this is good or bad. But, like vim and emacs devotees, I’m not sure I would want to go back.
I’m also not entirely sold on programmer dvorak. Supposedly it was designed based on C, Java, Pascal, Lisp, HTML, CSS, and XML. For more terse languages (and regex) you really need the full spectrum of special characters and there just aren’t enough good spots. &%$`^|@
are all in awkward places.
At one point iOS added the dvorak layout although I don’t use it on my phone. It turns out that remains yet another set of muscle memory that would need to be retained. I tried it for about a day and learned that One-thumb typing is a terrible experience on a dvorak keyboard as you’re constantly jumping from side-to-side.
All in all, I’m happy I made the switch as, if nothing else, my wrists don’t hurt anymore and I have some bragging rights. Would I recommend this to others? Only if you really wanted to.