If there is a programming language whose designers took into account the fact that humans would have to use fingers to type it onto keyboards for multiple hours a day, I have yet to encounter it.

I say this after investing a fair amount of time on typing.io, which treats programming languages purely as typing exercises. If you told a stenographer they had to take notes in Haskell, you would shortly find a typewriter-shaped indentation impressed upon your forehead. Lisp is probably the only language that comes remotely close to finger-friendly, and even then only if you are using an editor clever enough to remove the need to type Shift-9/Shift-0 every few milliseconds.

I realize that if you’re typing code so fast that finger-stamina is your principle limiter, you’re probably doing something wrong. But still. It is strange that this is not even a consideration.


  1. I have wondered the same as well. I have been experimenting with the Programmer Dvorak layout but the learning curve is a little rough. That said, the software should conform to the user not the other way around IMO.

  2. Cood layouts are rare. I’m using Neo2 (http://neo-layout.org) which is kind of a dvorak layout for german. It has very nice features like different layers (normal, uppercase, ALL SPECIAL CHARS, greek letters, numbers and movement), has typographic features right at your fingertips, like ‘’ or „”, and is designed for ergonomic writing!

  3. Interesting thought. I think the key here is keyboard layout. How to design a language for all the available layouts? For example, on my (french) bépo layout the parens are not shifted, so they are a one key, direct, access. Another example is the dot, it is direct on a qwerty layout, but it is shifted on an azerty one. There is so many layouts…

  4. And now try to image programming with a keyboard layout (like the German one) where all the braces and bracket require you to hold down the alt key and press press one of the number keys. The English layout then feels like it was specifically designed for programming. 😉

  5. Occasionally I wish that Ruby would have picked the Lisp convention of dashes instead of underscores to separate words.

Leave a Reply

Your email address will not be published. Required fields are marked *