The Personable Machine
Working with a new computer interface recalls what George Bernard Shaw said about second marriages: it's the triumph of optimism over experience. Most computers today are still deaf, dumb, and blind. We're still the computer's ears, eyes, noses, hands, and feet. But the computer is rapidly getting cheaper, smaller, more sensitized, more adaptive, more personable, and much closer to our skin.
The biggest reason why human-computer interaction is still so bad is that we're still far more adaptable than our computers. So when we have to work together, most designers find it easier to force us to bend rather than our machines. To make us fit together, ancient interface designers sewed shut our mouths, broke our arms, and nailed our hands to a keyboard. We couldn't talk to the computer, wave our hands at it, or do anything else besides type---and curse.
To compound the problem, most computer programs keep no context of the current piece of work. So everything we type is equal gibberish to the computer unless it happens to be exactly what it's looking for at that particular moment.
Further, most programs keep no history of our interaction across sessions, or even within a session. So we could just as well have a brain transplant after every command we issue to the computer, because the next one and all future ones are just as much of a surprise to it as the first one was.
Because of this unawareness of context, today's computers can't adapt to us. We're forced to adapt to them. And since interface designers can't think of everything beforehand, that means the interfaces we have to use are simply terrible.
Instead, computers could grow to become more like horses, rather than the cars computer designers apparently take them for. Such computers would come with some inbuilt abilities and initially they would be just as hard to use as today's computers. But after using them awhile they could learn something about us and what we're like, so they start anticipating and correcting us, making our life simpler.
Computer professionals usually don't design hard-to-use machines from spite, they do it because it's easier. They haven't as much of a stake in easy use as in any use at all. Only when a machine is widespread and working after a fashion is there pressure to make it easier to use. To fine-tune early televisions, for instance, homeowners needed to be acrobats with engineering degrees. The same was true of the first sewing machines, and the first typewriters, and on and on.
The problem is that interface designers don't know you. They have no idea what you want to do next, what experience you've had with this or any other machine, what you expect, what you want most, or how you're feeling right now. And since the current programming paradigm states that programmers must first know exactly what the problem is and the machine can't be allowed to adapt as it's used, there's no way for anyone besides the original programmer to ever be really happy with generic software.
Further, Real Programmers, like mountain climbers, are in love with hardship. To them, easier ways to use computers are bad because they make using computers easier. If computers get easier, more people can master them. So the thing programmers excel at, their puzzle mentality, would then be less important. There's a kind of heroism involved in getting something done when faced with near insuperable technical problems. Imagine how mountain climbers would feel if someone put an escalator on Mount Everest.