Why are computer keyboards the way they are?



The most common keyboard layout in use today is called QWERTY, it takes its name from the first six characters seen in the far left of the keyboard's top row of letters.


Why QWERTY? why this layout?
from Wikipedia:

"The QWERTY layout was introduced in the 1860s, being used on the first commercially-successful typewriter, the machine invented by Christopher Sholes. The QWERTY layout was designed so that successive keystrokes would alternate between sides of the keyboard so as to avoid jams. Improvements in typewriter design made key jams less of a problem."

So the mechanical issues of the original typewriters was the main reason for this layout design.

A second popular layout is called Dvorak, designed in the 1930's and it tries to address another problem:

"... the introduction of the electric typewriter in the 1930s made typist fatigue more of a problem, leading to increased interest in the Dvorak layout..."

But even the Dvorak layout is already some years old, so is the typist fatigue the same as now? For example do we write, the same things as in 1930's?

Is there a better layout?

Take a look at the texts you write every day, and imagine if changing the keyboard would make it more practical for you.
For example, for this text i had to write the word WHY a lot, so if i had whyrtu instead of qwerty on my keyboard, would be an improvement...right? Well almost, not that easy, doing this change might make it harder for other frequent words i use.

So we require a more strict and complete process, something like:
  • counting all the most used words.
  • decide criteria for best layout, figure out the major annoyances:
  • many vertical movements, like jumping up and down on keys rows.
  • many horizontal movements, can cause hitting 2 successive keys with same finger is very inefficient.
  • frequent use of pinky.
  • etc... (you can make up your own)
  • Finally try and evaluate several keyboard layouts and variations.

Imagining to do this by hand, like Dvorak and Sholes(for QWERTY) did, is a pain. Luckily we have computers :) and as a matter of fact someone already played around with this problem (which made think about this text in the first place).

See here for experience: http://klausler.com/evolved.html, and also the final keyboard layout: http://klausler.com/evolved.pdf

Your Own keyboard
But the right layout depends so much on the words you write more frequently, and is easy to see it can change very easily:
  • different people use words in different ways.
  • different languages make for completely different words.
  • 15 years old person words are different from a 70 years old person words.
  • use of computer during working hours compared out-of-work working hours...
  • etc and so on...
So even for you, an optimal keyboard layout would probably change over time.

But imagine a future intelligent computer that can be all the time analyzing what you write in the keyboard and can auto-adapt itself to give your own very optimal layout. Not too frequently, of course, you don' want your keyboard changing every day. But maybe every 5 years is not impossible to imagine....

Keyboards of the future should come with little blank displays that can be personalized with the key you want.

Every time you login(just by touching, with fingerprint id) into a different computer, your keyboard configuration is pulled from internet.

Maybe extra keys where each key is actually a full word, of your the top 10 most used words, might increase writing speed...

Or have touch screens, and have a keyboard appear on a touch screen. A keyboard on a touch screen is whole new level of layout possibilities, we could make more frequent keys bigger than others... play with different keyboard shapes that can adapt to each person hands sizes and shape for example... etc...

AdWare Mechanisms

Interview With an Adware Author
  • Some serious hacking, see the question "Can you tell me more about your strategies for persistence?".
  • Who said Scheme didn't got any real use: "...I got to write half of it in Scheme, which probably means that I deployed more Scheme runtime than anybody else on the planet...."
  • Huge: "..It amounted to a distributed code war on a 4-10 million-node network..."
  • How safe are we: "...It would have been fairly trivial for me to go spelunking for people’s credit card information or whatever..."

Programming Languages

couple references that got me interested in exploring something new.
I'll be looking at Lisp(because of paip and aima), Scheme and Ioke.