Louis Gray recently posted about the future of Apple’s OS efforts in his piece, Will The Mac OS X Dial Go All The Way to Eleven?. He points out how little attention has been given to answering the question of “What’s Next?” for Apple in particular and OS’s more broadly. Louis accurately points out that Apple’s recent OS upgrades focused on polish, adding a few consumer facing features, and UI tweaks. They have not been challenging the core assumptions of interacting with your computer in the age of the internet and true web applications. This got me thinking about what will be next. Whatshould a modern OS do for people?
The OS’s of today have little to no knowledge that this shift is occurring. Their only real connection to all of this is through the browser. As we spend more and more time in the browser the question arises, “Do I need anything other than a browser?” Google’s Chrome OS certainly (from what little we know) is a direct response to that question, but I think there is more to it than that.
We use the browser so much more now because many of the apps we want to use are better when connected to our friends, our other data, and accessible anywhere in the world. The browser has been the client app that has bore the burden, but that is due to a deficiency in the core OS, not other apps. The point of the OS is to abstract the hardware of a particular machine and make it easier for developers to spend time building specific value, rather than coming up with ways to get pixels displayed on screen or recognize mouse clicks. The OS of the future needs to abstract away the complexity of distant storage and distant compute resources.
What we really want is the OS to not only abstract the local hardware, the machine sitting on your desk, but the hardware of distant datacenters. Allowing application developers to seamlessly and effortlessly deal with storage and compute without having to make a distinction between local and distant. There is no reason the OS can’t do this.
It is already being done, not for consumer OS’s, but by companies like Google and Facebook. They have created software to abstract their enormous number of servers, freeing their own developers from worrying about the hardware apps like Gmail or Newsfeed are deployed too. I realize it is not as simple as I make it out to be for developers at these companies, but they are no doubt benefiting from a platform their respective company is building to help reduce the effort required.
These companies are trying their hardest to make their massive cluster of servers look like a single computer to their app developers. This same model should be adopted by Apple, Microsoft, and others for the consumer OS. How can you treat my single machine as a part of a larger cluster gaining the benefits of the Cloud, while still maintaining the advantages of local resources, mainly the fact that latency is orders of magnitude less on my own machine compared to communicating with servers around the world.
The OS of the future is not about providing the solutions to consumer’s problems, that is the responsibility of app developers. The OS needs to provide the hooks for app developers to build compelling experiences. Even though the current OS’s we use everyday are severely handicapped in their web awareness, we still have apps that work better on the desktop then in the cloud. Imagine when these apps can have the best of both worlds.