I’ve been thinking about personal computers in general and its usage by non-technical people. Things are far from ideal, with Microsoft not getting any closer to making computing accessible to regular people, yet still remaining the dominant computing platform. But in observing the recent occurrences and in thinking about the future of personal computing, I think we are poised for a change. With the recent announcement of Google Chrome OS, I have some (long, rambling) thoughts on the subject which include why a web OS is the likely next step in personal computing and some predictions on it: The Problem ———–
Let’s face it, personal computers are too difficult to use. The average non-technical person has difficulty using personal computers, regardless of whether they are using Windows, Mac OS X, or Linux (though the Mac OS X users are marginally better off). If a non-technical user isn’t having any problems its probably because they have a very thorough technical person managing things for them. Even the highly technical person who spends 60/hours a week using personal computers is going to run into some problem that is going to require a good deal of effort on their part to troubleshoot. Having troubleshooting skills is in fact a requirement to be able to use personal computers without help. But why should it be?
Why are personal computers such a pain? One word: Complexity. Ridiculous amounts of complexity. Windows users have to deal with often difficult non-standardized software installation processes, having to install hardware drivers which are often of poor quality and difficult to install and use, having to edit the registry when things go wrong with updates, having to protect themselves from malware, etc. OS X users have a significantly better experience in these areas, but things are nowhere near perfect. Many Linux users sacrifice being to able to use the latest versions of software in the interest of simplicity as provided by their package managers. In all cases software updates and installations can and will cause problems. People are afraid to update their software as they have been burned by updates screwing things up. There are so many “moving parts” in a typical desktop operating system that there is a high likelihood that something will go wrong.
Complexity in the user interfaces increases the pain. Even OS X can only get so far in making a complex interfaces accessible.
The opposite of complexity is of course simplicity. To make computers accessible and manageable by everyone, we need to make them significantly more simple.
The user needs to interact as little as possible with functions that are not purely just using the applications they wish to use. They need to forget about the intricacies of software installation, updates, hardware setup, and even managing individual files.
The web offers to push many of these problems to the server, where there are technical people handling the issues instead of end users. And the users only have to worry about keeping their web browser updated (assuming the web sites don’t require some obscure plugins) and figuring out whatever UI the web sites offer. Even installing a decent web browser and keeping it updated appears to be a challenge for the majority of people, though.
What we need is a focused device that has a modern web browser (not Internet Explorer) and makes keeping that web browser updated as easy as possible if not completely automatic. And the web browser needs to be a first class citizen in the device’s user interface.
The iPhone and Google Android start to hint at what this might be like, but they don’t go far enough. What I mean by the web browser needs to be a first class citizen in the device’s user interface is that the web applications need to be the focus of the interface. Want to get your web mail or todo list? They should each be directly accessible from the main interface and you should be able to easily return the currently open session you have for the web application.
To take the example of the iPhone, the web application should be an icon on the home screen (which you can do), but instead of opening up the browser application and either opening a new page or switching a currently open page if it exists, it should just open up to the web applications. Admittedly, the iPhone’s way of handling this is good enough, but if we are going to build a whole device around browsing the web, we need to lose the idea of the web browser being an individual application. The web browser is no longer the application, the web applications are. Those of you who are familiar with Mozilla Prism you know what I’m talking.
I really hope that Google Chrome OS and any other emerging “web OS” gets this part right.
A common response is that what’s wrong with traditional native/desktop applications (on the desktop or for specific devices such as iPhone apps). Why would you want to only use web apps? Well, we are making a sacrifice in the name of making things easier, but I think in the long run this sacrifice will be worth it. There are a number of problems which web applications and a web OS can solve:
Native/desktop apps are either not cross platform, have separate builds for various platforms, or use a cross-platform toolkit or runtime. But even using a cross-platform toolkit or runtime only puts it on a limited number of devices. Web browsers on the other hand are everywhere. This may seem like an issue that only helps developers, and it does help developers as they can just make a web version and instantly have their applications available on more devices than any other method of app delivery would. But as a user, this gives you choice in where you can use the application. A web application can be used from all of your desktop computers, your netbook, your phone, etc. And it doesn’t matter which brand of device and OS you are using, as long as a competent web browser is available for it.
Users of web applications no longer have to worry about updates. They are automatically using the current version. Granted, this means the service provider is in control of what versions the users use, but its a trade-off that significantly reduces the work the users have to do.
A “web OS” that is basically just an interface around web browsing has a lot less to worry about updating. It’s main concern will be updating the web browser (especially security updates). There may also be some less frequent updates to things like the general user interface, the hardware drivers, etc. There’s no guarantee that updates won’t break things, but the less to update the better.
I’ve already mentioned how you can use web apps on just about any device. Did I mention you could use them on any device? What I mean is that for most web apps you don’t have to carry around all your data as its stored on a server. So you can get on any internet-connected device with a browser to use a web app and have all your data available to you.
Web applications offer connectivity between each other in ways desktop apps can only scratch the surface of. This is a minor point at present, but we will see much more of it in the future.
If done right (both the web OS and the web application), web applications have the potential to provide an identical experience to desktop apps. Most of this is thanks to the use of plugins which give browsers functionality outside of what the web standards provide. While plugins start to erode the benefit that standards-compliant web browsers provide, I think they are necessary to push browsers into desktop territory. I think they could be a good thing if they are open source and accessible via standard web technology (JavaScript or HTML). I think Flash, Java, and Silverlight go a little too far away from the standard web technologies to be used prevalently (and their main implementations are not open source and are non-trivial to duplicate), but they do currently fill in missing pieces such as watching video, playing audio, and accessing webcams/microphones. But I think plugins that extend and build upon the standard web tech is a better idea than a plugin that provides an entirely different and separate runtime. Maybe things will look different 10 years from now.
Google Gears or HTML5 provide local storage. This answers some of the complaints about not having your data local, though it seems to be more often used for caching data locally (for offline use or for fast access) then as the primary means of storage.
I almost view Google’s Native Client as cheating, as it removes the cross platform advantage. And the security implications are not to be taken lightly. But it does open up a huge amount of possibilities.
I’m not sure what the best way to approach actual plugins in web OS. The problem is that they are basically native applications. If you open up a web OS to allowing installation of arbitrary plugins, there is the potential for losing the advantages that a web OS is pushing (especially the cross platform advantage). Maybe its better for the web OS vendor to be in control of this.
Unfortunately, the locked down nature of the iPhone may actually be a good model for a web OS. Though ideally, the locked down should only be on the surface. The web OS would ideally be open source and allow for those wishing to break out of the lock down to be able to do so; but this is not something that the average user should be doing.
Of course, a “Web OS” is a trade-off and there are going to be disadvantages over traditional desktop/native software. Here are a few of the disadvantages:
Despite the possibility of local storage, in general, using web applications involves trusting a third party to store your data. This raises privacy concerns in some situations. Another problem is that you are trusting the third party to maintain integrity and reliability of your data. But I think most of these services are much better about backing up than the average user (though there is sometimes the odd web service that loses all its data and had never made a backup).
Security is a more significant issue on the internet. While viruses and malware can reach desktop applications, your data that is stored by third parties is open to attack 24/7, while your the data on your personal computer is only open to attack when your computer is on and connected to the internet. The security of the web browser is especially important, but I don’t think that is anything new.
Browser-based web apps are still catching up to native desktop apps. Even with Flash and Silverlight it’s difficult to deliver the same experience that native apps can deliver. I think in time we may see all the missing pieces get filled in, but this will be a slow process.
User interfaces are more the responsibility of the web applications. There is much less standardization among web apps. Similarities among the UI for web applications is generally due to them copying each other and not as much anything inherent in the platform (though there is a bit of it that is due to the platform). You don’t get the same kind of uniformity you would get with a toolkit such as Cocoa or GTK+ once you get into the more “rich” web applications. Maybe this is all a good thing and that more variations in UI will cause more rapid improvements in UI. But there is something to be said for having a consistent UI across applications that you use, especially for things like keyboard shortcuts. I hope that some consistency arrives for keyboard shortcuts in web applications, because the current state of keyboard shortcuts are not very good.
But these are all tradeoffs and not show-stopping problems.
Let’s be clear, the web OS isn’t necessarilly going to be for everyone and every kind of task. The traditional desktop OS is still going to be alive and well and in use for a long time. But the web OS is going to become ubiquitous like televisions and telephones are. Though some of the devices it will end up on may be typical desktop and notebook computers, it will be even more prevalent on devices like small tablets and small notebooks (“netbooks” as they are currently called). I guess I sort of see the iPhone, Android, and the Palm Pre as devices that can be or are at least partially a “web OS”. And we are seeing Android being used in places where I think a “web OS” is appropriate.
It’s interesting that Google is creating a whole separate OS from Android, but I guess if you are really going to create a “web OS” there is no need for many of the things that Android provides.
So in conclusion, a “web OS” needs the following:
If done correctly, I think this could be a good thing in that it could make personal computers much more accessible.
© 2017 Nilesh D Kapadia