Archive for the ‘Thoughts’ Category
If I handed you an Apple II, you might arch an eyebrow, but you’d instantly recognize it as a personal computer. This despite the Apple II being a piece of technology over 30 years old. And you would know how to control it, easily identifying the keyboard as the primary interface. What you would probably have a hard time with, however, is getting any work beyond basic text editing done with it.
Form-wise, PCs have evolved modestly. Yes, manufacturers now use all sorts of new materials, but the basic blueprint is almost entirely unchanged – a screen, a box, and a keyboard (with a mouse). Functionally, however, the capabilities of PCs have exploded. Even as recently as a decade ago, PCs were primarily tools for work. Word processing. Spreadsheets. Now, productivity apps are secondary features.
What is a bit surprising, though, is that despite this massive growth in functionality, the devices we use to manipulate PCs have hardly changed at all. The keyboard in particular has remained amazingly constant. The keyboard you are using right now probably has a few extra keys, and possibly a different layout, but is otherwise identical to its ancestors. A clear sign that keyboards have been caught in an evolutionary stasis? When a noted geek enthusiast recently replaced his keyboard (after 14 years of use!), he replaced it with an identical model he had stored for safekeeping.
Why has there been so little progress with keyboards? The same reason the PC form factor has changed so little – most of the advancements happen in software. It’s so much easier to try out new ideas in code. And so apps that rely heavily on the keyboard have bundles of smart, productivity-enhancing features. Every programmer is intimately aware of code editing tools in his/her IDE of choice. Shell users feel naked without tab expansion and command history. Power emailers swear by text expansion utilities. And web surfers are cushioned against repetitive stress injuries by filtering and auto-completion in the url bar.
But have you ever wished that some text feature in Program A also existed in Program B? I often find myself wishing that command history were available everywhere: simply press up a few times to retype a recent string of text rather than switching out of my current app, selecting, copying, returning, and pasting. Or that url bar auto-completion was available when emailing links.
These kinds of cross application keyboard smarts have been generally unsuccessful because it’s really hard to do without an excessively burdensome user interface. It would help keep things cleaner to push these features into the keyboard rather than clutter the operating system further. But this is infeasible since there are no mass-market keyboards with such hardware capabilities.
Or are there? Smartphones are incredibly capable devices and while we primarily think of them as standalone devices, I think increasingly we will use them as mechanisms to interact with and control other devices. Like PCs. In developing HippoRemote, we put a lot of thought and effort into making the iPhone keyboard even smarter. As you can guess, the design is heavily inspired by command shells and browser address bars. What can we say? We are geeks. But we think these are features that everyone will find useful. We also tried to take advantage of the iPhone’s built-in smarts by displaying the layout most appropriate to the task at hand. Hopefully someday Apple will give developers more control over customizing the keyboard so that we can take things even further.
But whatever Apple does, we’ll still be working to create smarter practical input devices. Consider what’s currently in HippoRemote a small first step. We’ve got more ideas to try and more experiments to run.