As We May Code

Since the debut of the iPad, I can’t stop thinking about path dependency.

These virtual keyboards separate letters from numbers from symbols onto three distinct screens. While using my iPhone, I find myself spelling out words like “between” because I’d rather keep to the letters keyboard than switch back and forth to write “b/w.”

Everyone talks about how you would never write a book (or even an essay) on an iPad, but that would be a piece of cake compared to writing a computer program.

Laziness is one of hackers’ most beloved vices. This has the salutary effect of keeping programs short, the fewer keystrokes to accomplish a task the better. It also means that programing languages are intensely optimized for the QWERTY keyboard.

The classic example is probably something like Perl, which uses the breadth of the QWERTY symbology to specify a wide range of mathematical and logical concepts, with very little reference to the notation of either higher mathematics or formal logic. Perhaps if people had thought of using typing machines as “thinking machines” they would have included the Greek alphabet along with the Roman and basic accounting symbols.

While some languages like Ruby and Python are closer to English, they would still be a nightmare.

All this makes me wonder if we are stuck with the QWERTY keyboard for good. Or if not, what would new programming languages would grow up in its absence.

Thoughts?


Comments

One response to “As We May Code”

  1. evan bauer Avatar
    evan bauer

    Jean,

    Interesting thoughts on keyboards and path dependencies. A couple of interesting illustrations out of the mid-twentieth century (pre-history, I know) are:
    – COBOL (http://en.wikipedia.org/wiki/APL_%28programming_language%29) that used plain-text for most instructions (e.g. ADD DEPOSIT TO BALANCE). You could almost write COBOL on an iPad (much too wordy for an iPhone — the keypad would work but it does not have nearly enough screen real-estate.)
    – APL (http://en.wikipedia.org/wiki/APL_%28programming_language%29) which very array oriented and required a special keyboard that provided the Greek letters and symbols used to describe its instructions. Even then, some operations required overstrikes to describe. The wikipedia page has pictures of the specialized keyboards and printheads required.

Leave a Reply

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