An interface is humane if it is responsive to human needs and considerate of human frailties. If you want to create a humane interface, you must have an understanding of the relevant information on how both humans and machines operate. In addition, you must cultivate in yourself a sensitivity to the difficulties that people experience. That is not necessarily a simple undertaking. We become accustomed to the ways that products work to the extent that we come to accept their methods as a given, even when their interfaces are unnecessarily complex, confusing, wasteful, and provocative of human error.

— Jef Raskin, The Humane Interface

The computer revolution hasn’t happened yet

— Alan Kay, OOPLSA 1997

These are amazing times for computing. Incredibly powerful devices with high-fidelity screens and cameras are now in the hands of around 2 billion people. Advances in AI are adding rich levels of interaction and personalisation. New tools and technologies are enabling developers to build and deploy massive scale Internet services that would have been unimaginable a decade or two ago.

And yet, I can’t help but think that something is missing when it comes to end-user computing. The desktop metaphor from the 70s has been polished but never fully replaced. When you use a system like Smalltalk you see a glimpse of a potential future of what could have been. The advent of smartphones should have been an opportunity to build humane computers which unlock the full power of computing without any legacy complexity. While some great steps forward came about in the transition, I feel we’ve taken a similar number of steps backwards.

End-user computing used to be a wild, fertile jungle but over time we’ve tamed it into an arid monoculture. When the industry was in its infancy there was a huge amount of experimentation in core concepts. To be fair, many of them were flawed on one way or another. However, there are many cases where I feel that strictly superior technology did not get the chance it deserved for one reason or another; the technology was before it’s time (computers of the time were too slow), it needed some network effect or ecosystem that didn’t exist, or that the business that backed it failed to market it correctly (or even failed outright). All of these reasons are context sensitive and independent of the actual merits of the underlying technology, and given that the computing landscape today is very different from that of the 70s, 80s, and 90s, we can take a look at these lost technologies in a new light.

And that’s the goal of this blog; to take a fresh look at the history of end-user computing and try to try to pull out concepts, metaphors, and details that could pave the way to a different future. One in which we leave behind all legacy complexity and usher in a new era of humane computing.