One of the rather unique features of the Fortress1 programming language is that it has builtin support for Unicode operators. For example, instead of using “==” you would use U+2261. After reading the spec, and a recent thread on ruby-core, I’ve been wondering something . Are language designers too limited in their decisions about syntax because of the limitations of the QWERTY2 keyboard?

Larry Wall’s first rule of computer language design is, “Everybody wants the colon”3. Maybe the problem is that we just don’t have enough symbols on our darned keyboards. The result is that we’re left fighting over the scraps that QWERTY gives us, e.g. the colon. My opinion is that a limited number of usable characters limits our thinking and our expressiveness. Perhaps it’s time for computer programmers to consider whether or not we should have special keyboards. I mean, plumbers and electricians and carpenters have special tools that your average homeowner doesn’t own, right? Why should computer programmers use the same tools (i.e. keyboard) that your average computer owner uses?

Maybe it’s time that we accepted the fact that programmers need a different keyboard from your average, non-programming computer user. Another row of keys above the current QWERTY keyboard, with two characters per key, gives us another 30+ code points. Or even just a redefinition of the current function keys would suffice. With these at our disposal, language designers can then write grammars & parsers that actually use these characters.

Are there issues? Sure there are. First and foremost is that it will take a new keyboard layout that programmers can agree on.4 Second, there are differences between typical desktop and laptop keyboard layouts. Third, vendor specific keyboard layouts with special, predefined keys will have to be considered.5

But none of those issues changes my opinion that we’re being hampered by QWERTY.6

1http://research.sun.com/projects/plrg/fortress0618.pdf
2http://en.wikipedia.org/wiki/QWERTY
3http://www.perl.com/pub/a/2001/04/02/wall.html
4I thought the W3C might have something to say on this topic but I was unable to find anything. Links welcome.
5Mainly Microsoft and Logitech I imagine, but probably others.
6Yes, this is a reworked entry from an older, personal blog post that some of you may recognize.