Beyond Dvorak

During lunch I spent some time going through the new Erlang Book. Now my pinky is sore.

Here are some characters that you type a whole lot in Erlang: []{}|

Every one of em takes a pinky stretch, and | takes a huge stretch. I type Erlang maybe half as fast as I’m used to. And it’s not just the typing, it’s the interruption of “flow” that bothers me.

I don’t think it’s really Erlang’s fault. The syntax is elegant, just hard to type on a qwerty keyboard. A lot of languages make heavy use of these characters, along with others like ()-_<>. Maybe the best keyboard for programmers would put these on the home row.

I won’t complain too loud, because Erlang doesn’t require all that much typing. For example, suppose we need a routine to find all the permutations of a string. Think how you’d go about doing that in C# or Java. How many lines of code would it be?

In Erlang it’s two…here’s the code, from Joe’s book:
perms([]) -> [[]];
perms(L) -> [[H|T] || H <- L, T <- perms(L–[H])].

But as for the keys…homerow would be awfully disruptive…but my numeric keypad doesn’t really need navigational functions, because I have dedicated keys for that. So I could remap the numeric row to the pad, and use the pad keys for #$% etc. Then I could remap these pinky keys to the left side of the top row. I’ll leave the () where they are, and map capslock to another shift. That should make things quite a bit more comfortable, without driving me nuts whenever I have to use someone else’s keyboard or type regular text.

The laptop keyboard might take a little more thought.


2 Responses to “Beyond Dvorak”

  1. Keith Says:

    Or… You could try some hand exercises to bulk up that weak pinky. Maybe squeeze a tennisball once in a while. In fact, I think there is a Tai Chi hand movement that would work for you.

  2. dennisbpeterson Says:

    Next you’re gonna suggest I go outside and get some sun.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: