Why the Ultimate Developer Keyboard?
Health is important
I have been programming for over a decade now. As I’ve become a more experienced programmer, I have found that there has been a toll on my body. Let’s just say, humans are not built for sitting long hours in front of a computer year after year.
While I have managed to maintain a reasonable level of health, I have noticed the usual challenges - a deterioation in my eyesight, posture problems and most worrying of all issues with my hands. Having a Keyboard designed for being in front of a computer day after day for years is vital for longevity as a software developer.
Speed is important
As I have become more experienced as a developer, I have found it important to master my tools. One of the fundamental tools of a software developer is the keyboard. I use it every day, it’s important for me to be efficient on it.
As a programmer, I have found a real advantage to being able to express solutions at the speed of thought - that means not having typing get in the way. Having a keyboard that supports above average typing speeds (70wpm+) is important to me.
Speed and health should live together like a happy family
Thankfully I have discovered several keyboards that appear to solve both the ergonomics and speed requirements I have as a software developer.
At the end of this post is a list of keyboards I would keep my eye on, while not comprehensive, the list has a range of keyboards that I would consider ‘professional’ programming keyboards. Some of them solve the speed issue, some solve the ergonomic issue, some solve both. With that said, let’s move on to my Ultimate Developer Keyboard.
My Ultimate Developer Keyboard
Having worked with both the Kinesis and Ergodox (see reviews below) I often dream of designing my own keyboard and combining the strengths of both of these keyboards into one single keyboard - what I would consider the ultimate developer keyboard. Both keyboards have gotten things right, and both keyboards have gotten things wrong - put the right things together and you have something special.
Having a wife who is good with photoshop, I (with her significant help) was able to put what has up to now been only in my mind as the ultimate developer keyboard into a picture for all to behold. At first glance it looks like the Kinesis, on closer examination you begin to see the Ergodox shine through - with some special additions.
My ultimate developer keyboard would look something like this…
Shape of Keyboard
The Kinesis got the shape of the keyboard right. My ideal developer keyboard would have a shell exactly the same as the Kinesis. This would allow arms to be parallel to the body instead of angled in.
Keeping the shape of the keyboard would impact the ease of transportation of the keyboard, but the wins of portability having the keyboard as a single unit outweigh the cons of transportation. A single unit makes it easy to move between computers at a single location - something that is important if you work in a co-located office where pairing and mobbing is common.
Thumb Keypad Layout
Keeping the thumb keypad layout (the area where enter, ctrl, alt, backspace, space, etc) are located as per both the ErgoDox and Kinesis is important. After having used this layout compared to a traditional layout, I have found it to be superior as well as easier on the hands.
I would keep the kinesis key wells - the advantage of the key wells is having the standard keys closer together and naturally angled so that your hands fit comfortably in a resting position and your fingers do not have to move far to make a key press.
Add mechanical function Keys
I would introduce normal sized mechanical keys as Function Keys (The traditional function keys that the kinesis has are a waste of time) . This would make a huge difference when working in IDE’s that require regular use of the function keys.
Include dedicated gui/function keys below shift
I would adjust the key layout that the Kinesis has to have the additional key underneath the shift keys (same as the ErgoDox currently has). This would allow for the windows/function key to be assigned to these keys while still keeping the ctrl and alt keys on both thumb keypad layout.
Mapping of keys would use the same process that the Ergodox uses. Having a graphical display for for remapping keys is superior compared to manual remapping done with the Kinesis.
Macro Recording Functionality
I would drop the current macro recording facility of the Kinesis. It is a waste of time. If possible I would introduce a graphical macro recording facility. If this was not possible, I would scrap the idea of macro recording totally.
Additional Row in Key Well for Layer Keys
I would add an additional column of keys in the key well for layer keys - similar to how the ErgoDox currently has it. These layer keys make it extremely easy to switch between layer mappings which makes them useful for VIM mappings etc.
Eight Additional Keys in Dead Area
Looking at the Kinesis layout, there is a big wide open space in the middle of the keyboard I like to call the dead area. I would introduce 8 additional mechanical keys to this area. These keys can be mapped to anything. If we were able to substantially improve the macro recording facility these keys could prove to be really useful. Alternatively just mapping these keys to common key combinations could also add value.
Mechanical Keys all the way
I understand that key switches are interchangeable, but by default I would use the gaetron browns - these are the default key switches I have in my ergodox and they are really comfortable. All keys on the keyboard would be mechanical.
Led section to show current layer
One of my irratances of the ErgoDox is guessing what layer you are currently on.
I would add additional LED display to the top left of the keyboard which would graphically display what layer the keyboard is currently on.#
Touchpad below thumb key pad
I would add the apple touchpad built in to the keyboard just below the thumb key pad. This would allow you to keep you hands on your keyboard at all times. In the situations when you absolutely have to use mouse navigation, the touchpad is there.
The touchpad is also useful for having on operating systems where you have multiple desktops and scrolling between desktops is common.
USB Hub / Ports
I would keep the USB hub where the Kinesis already has it underneath the keyboard. I would add an additional usb port on either side of the Kinesis box. This could be used for plugging in flash sticks, etc.
You can never have enough USB ports!
In addition, if possible I would add a bluetooth module that would allow for the device to be connected to a PC via bluetooth. I’m not sure on how easy this would be, but hey, this is my imaginary developer keyboard.
My Sources of Inspiration
Kinesis Advantage Pro Review
What I like about the Kinesis
I like to call my Kinesis my Silver Lamborghini. It’s a great conversation starter. When I originally purchased it, it took me 3-4 months to re-learn how to type. The first two weeks were extremely tough, at one point I considered returning it. The big learning curve is that space, return, backspace, delete, ctrl and alt are moved to the thumbs instead of the pinky fingers. The reasoning behind this is that the thumb is the strongest of the fingers while the pinky fingers are the weakest. Thus it makes sense to move keys that are reguarly pressed to the thumbs.
The keyboard is fully re-programable. Since I do a lot of pair programming and I like to use capslock as my escape key for vim mode - being able to re-map this on the hardware of the keyboard was money well spent.
The keyboard has a curved in shape which means that the keys are at a curved angle to your hands. This means that normal keys are very close to your fingers which reduces the strain when pressing normal keys.
The keyboard has a on-board usb hub which is very useful for plugging a mouse dongle into it - I use logitech. Whenever I plug my keyboard into someone else’s computer I don’t need to worry about plugging in a mouse as well.
The keyboard comes with a foot pedal. Yes, you heard me right. I have never managed to use the pedal, but it is simply a real geek out telling people you have one.
What I don’t like about the Kinesis
The keyboard comes with a macro recording feature - before buying the keyboard I thought this would be a killer feature. Turns out I don’t use nearly as much as I thought. Recording macro’s it a pain, and then remembering what marco is mapped to what key combination always becomes a challenge.
The function keys are gimicky. For such an expensive keyboard, you get these little soft touch function keys that are half the size of the normal keys. They are rendered nearly useless. As a developer that works in Visual Studio a lot - having function keys that are easily accesible is important. This is one of my biggest irritations with the keyboard.
The keyboard is ‘missing’ a few keys. For a normal typist I could see this not being an issue, for a software developer I typically use key combinations frequently, most notably ctrl, alt, etc. The default configuration of the kinesis puts only one alt on the thumb pad for the left hand. Where the alt should be on the right hand they have a windows or function key. While you can replace the windows/function key with another alt key and remap it - you are then missing a windows key. I eventually had to map ctrl+alt to act as a windows key, which then disables any options with ctrl+alt. If we the keyboard had an additonal key below shift on each side that could be mapped as a function key this would solve the problem. Alas it doesn’t.
Remapping keys is done manually. While you don’t remap keys often, every now and then I come up with a better combination of a map. Remembering how to manually get into remap mode and then how to trigger a remap is always pot luck. If only it had an onscreen mapping tool like the Ergodox.
The keyboard does not work properly on certain Windows 7 machines. As stated by the manufacturer this is a windows problem, not a kinesis problem. They are even kind enough to send you a module that you can manually replace that fixes this issue. I got the module, it involves opening my keyboard and replacing wires. This scares the living daylights out of me to do. This means that at one client when I pair I could not use my Kinesis - which meant one day a week I would be stuck on a normal keyboard with numb hands.
Ergodox EZ Review
What I like about the Ergodox EZ
I have had my Ergodox EZ for two months now. I like to call it my Stealth Bomber. It’s black, I ordered it with blank keycaps and brown gaetron switches. It’s also a great conversation starter as well as an awesome keyboard.
When I got my Ergodox, I ordered it with the additional hand rests and tilt legs. I highly recommend this, especially when you have worked with an Kinesis before. While you cannot get the down hand position like you can with the Kinesis, you can still get a comfortable angle that is adjustable.
The Ergodox comes with a graphical keymapper. This has made the world of difference when changing keymaps. Like the kinesis you can remap any key to do anything, and it is substantially easier to do because you don’t need to remember the mappings - you can simply load them on screen.
The Ergodox also comes with layer keys. Without getting into the specific of how layers work, in essence at the press of one button you can switch from one layer to another. Each layer can have a totally unique keymapping. This has been essential in getting over the missing function keys (one of my gripes about the ergodox). Instead of having function keys, you flip a layer and then the number keys are remapped to function keys.
Transporting the Ergodox is really easy. Because it comes in two parts, you can comfortably fit the ergodox in a backpack, which makes travel really easy. Both the Kinesis and Ergodox require you to have a flat surface in front of you to be able to use them. It’s pretty much impossible to sit and type with the ergodox on your lap.
The Ergodox has the additional windows/function keys below shift. This is a step up from the Kinesis and means you can have alt + ctrl on both thumb maps and still have a windows key.
What I don’t like about the Ergodox EZ
Unfortunately it doesn’t have a USB hub built in. This means whenever I plug my keyboard into a terminal I have to plug my mouse dongle in as well. I miss the usb hub that the Kinesis has.
The Ergodox doesn’t have function keys. While the Kinesis has puny function keys, the Ergodox does not even attempt that. I have found this not to be as bad as the Kinesis, as toggling layers is really easy and so I have function keys mapped to layer one. That said, I wish it had function keys.
The Ergodox comes in two parts. This is useful for travel, but when moving desks - and I move desks often - it means there is an art to getting the alignment right. I wish it had a detacable bar that you could connect where the tilt legs were that would give you the rigidty of the Kinesis, but keep the mobility of the Ergodox.
I really miss the curved design for the hands of the Kinesis. The keys on the Kinesis are definately closer because of this, which makes it more comfortable to type.
I enjoy both keyboards. Right now my preference is the Ergodox. The extra keys really make a big difference. Because both the Ergodox and Kinesis both have the thumb pad with the primary keys on it (space, backspace, enter, ctrl, alt), switching between them is very easy. Also, both keyboards are ergo-friendly. After having switched to them the numbness in my hands has virtually gone away.
ErgoDox EZ - $295
Kinesis Advantage Pro for PC - $359
Ultimate Hacker Keyboard- $220
ATREUS - $149
Code Keyboards - $150 to $180
Happy Hacking Keyboard - $?
DAS Keyboard - $100 to $150
See the Stack Exchange discussion for some other options…
See a great comparison review for keyboards
See discussion on Quora regarding ultimate programmer keyboard
Which keyboard switches should I use?
Detailed explanation of different switches
Modifying your Kinensis
Mounting magic trackpad to Kinesis