Does the keyboard have a future?

This post is more than 16 years old.

Posted at 22:44 on 23 July 2007

I got a new phone today. My old one died at the weekend but fortunately there was a spare one available at work that I have been given the use of. My mobile number is unchanged.

Unfortunately it is not an iPhone, but it does have some rather interesting features. One that I rather like is handwriting recognition, which even makes a reasonable attempt at interpreting cursive (joined-up) handwriting. It is accurate enough to be usable most of the time, and though it does make enough mistakes to slow you down, it seems to get more accurate the more you use it. It is certainly much easier to use it for texting than a tiny numeric keypad.

With technology like this, one wonders whether this means that the writing is on the wall for the keyboard as we know it. Speech recognition may have had a bit of a bad press, but it is improving all the time. We now have futuristic technologies such as Microsoft Surface and the iPhone either out or in the pipeline. Computer scientists at Cambridge University have even produced a device that can decode facial expressions.

Sure, all this may still be slow and resource intensive at present, but the technology is improving all the time, and while voice recognition may not be suitable in all settings (you wouldn't make many friends using it in an open plan office environment), handwriting recognition is certainly rather promising, and it could well be a serious rival to the humble keyboard as our main data input device.

Having said that, I don't think it's curtains for the keyboard just yet. It comes into its own when you need to combine speed and accuracy. Skilled touch typists can reach speeds of eighty words per minute or more -- speeds at which your handwriting would rapidly become illegible even to human readers. We developers will probably be the last ones to hang up our keyboards in the end of the day -- the requirement for both speed and accuracy is paramount when you are writing code.