I was recently pondering the interplay between Google, Microsoft, and Apple. Microsoft’s strengths have traditionally been in the software realm, and Google’s in the web realm. Apple’s strengths have been in delivering great user experience and design, great operating systems, and hardware.
Google has been moving into Microsoft’s territory by offering cloud based applications. Over time, Google Docs and Gmail are becoming more competitive, and hence more of a threat to Microsoft. Microsoft has responded by moving into online search and offering their own cloud based office applications.
Cloud-based applications have some serious benefits including the ability to access the applications from anywhere, ready access to data from wherever you happen to be, secure backup of data, and easier sharing of information. But users do have to make some tradeoffs. Frequently the user experience and features of those cloud applications are nowhere comparable to what you’d find in the equivalent desktop app. (Gmail and Google Docs have only the most rudimentary formatting for example.) But that user experience will improve over time.
Where does Apple fit into the picture? I realized that Apple could offer some very useful cloud-like benefits by building on top of their expertise (great devices, great operating systems). Let me paint a picture for you, using three complementary features that together create a great experience and offer many of the benefits of cloud apps, without having a cloud.
Apple’s OS X is built on top of Unix, and an integral part of Unix is X11 (pronounced X eleven), the windowing system that allows applications to display graphical windows. A great feature of X11, little known outside of technical users, is that it can be used to run an application on one computer, and display the window (output) on another computer. However, this is typically hard to do. It’s not wrapped up in a nice little graphical user interface.
Imagine if Apple modified the application switcher (Apple-Tab, equivalent to Alt-Tab on Windows), so that it showed you not just the applications running on that Macintosh, but also those applications running on any Mac you happened to be logged into. You’d get something like this:
Above the line, you see two computers. An application is running on computer #1, and displaying the GUI of that app on the same computer. On computer #2, the same user is logged in, and they run the app switcher. They see the applications running on computer #1 in the app switcher, just like any locally running apps. The user can select the app, and have the GUI moved from computer #1 to computer #2.
With this ability, Apple users be running an application at home, and access it seamlessly from work. Or be running an application on their desktop PC, and access it seamlessly from their iPad.
Now let’s talk about distributed file systems. Another benefit that the Unix operating system has over Windows is that it is used far more extensively for high performance computing, such as running weather simulations. In this situations, clusters of Unix computers work together on computationally difficult tasks. In order to share massive data sets among computer, these Unix computer run distributed file systems that allow any computer that is part of the cluster to access any file, regardless of exactly where it lives. Many distributed file systems also incorporate data redundancy so that if any one hard drive fails, the data exists in at least one other location. There are several different distributed file systems for Unix.
Here’s a picture:
In this example, computer #1 and #2 both are part of the same distributed file system. As a user, if you use Finder (the equivalent of Windows Explorer) to look at the file system, it appears that File A is present, even though it’s actually on computer #1. It would be possible to also choose to incorporate true cloud storage services, so that for a small cluster of computers, data redundancy is guaranteed by being replicated seamlessly in the cloud.
Just as we integrated app management into the application switch to make X11 more palatable to the masses, Apple would need to integrate distributed file systems into the out of box experience and user management aspects of OSX, so that users would not need to think about distributed file systems, but could instead just enjoy the benefit of seeing one hard drive that contained all their files, and which appeared identical, regardless of which computer they were accessing it from.
The third and final feature that brings cloud-like benefits to Apple would be a browser-based interface to user’s computer. Browser based versions of X11 windows managers already exist, and by integrating user account management and secure connections, users of Apple computers could enjoy accessing their applications and data from any web browser. Imagine, for example, going to apple.com/mymac, and then accessing your Mac directly. This can already be accomplished, by some extent through solutions like GoToMyPc.com, but through OS and X11 optimizations, Apple could probably deliver a better experience. It would like similar to the first diagram, except now the experience is running within the web browser: