Writing The Interface
Language evolved to let us communicate more efficiently than with the simple gestures and grunts pre-humans were confined to. It’s difficult to learn an entirely new language at an old age, but it comes naturally to children as they develop. Over time, language evolves as we need new ways to communicate.

Up until recently, the written word was the best way we had to communicate with each other, and we haven’t needed to change it much. But at some point we saw a massive opportunity that we needed a new form of communication to exploit. We realized that talking to computers could potentially free us from mundane tasks.
The first language we had to do this was binary machine code, then we developed more high level programming languages. Only a very small group of nerdy engineers really needed to talk to computers, because it was mostly used for storage, retrieval, and computation of business data.
Over time, computers became cheaper and more powerful, so we started to realize we could use them for different purposes. The limiting factor wasn’t the availability of computing power, rather it was the difficulty in translating human desires into commands that the computer can understand and execute. We needed to create a way for people to interact with computers.

There’s two directions you can go with this. Make the person understand the machine, or make the machine better understand the person. For the past 30 years we’ve gained much progress by making the machine understand the person. User interfaces are designed to minimize the amount of language-learning demanded of the person. We’ve done a really good job of this - you don’t have to know much about how computers work to use them successfully.
The other direction would have been for people to spend more energy learning to understand how computers work so they can interact with it on it’s terms. I picture this as a spectrum - on one end you have people writing binary code, on the other end you have Siri.
When you realize that all a user interface does is provide a way for people to talk to computers, and for computers to talk to people, you realize that software engineers and designers are really like translators. We help users and computers understand each other.

But it gets really interesting when you realize that children are notoriously good at learning new languages, and that language evolves like everything else. When today’s kids grow up, do you think the interfaces they use will really resemble the ones we’re used to now? Don’t you think if people were willing to work a little harder to meet computers in the middle we couldn’t see extraordinary gains in human productivity? I don’t think we’ll necessarily all be programmers in the future anymore than I think we’re all scribes now, but I do think the language that humans use to speak to computers will continue to evolve and be more efficient.
Touch gestures, voice interaction, and polished user interfaces are a local small hill. If you’re willing to put up with some lost productivity in the short run while you’re learning the new language, there’s a mountain in the distance waiting for you to climb it. I believe it’s best to get a head start now, because it won’t be long before today’s scribes (programmers) aren’t the only ones who are literate.
