About     Search     Feed

Nilesh D Kapadia


Music     Twitter     Github

The Rise of the Web OS

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?

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.

What We Need in a Solution

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 Browser Interface Needs to Change

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.

What’s Wrong With Traditional Applications?

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:

Cross Platform

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.

Updates

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.

Convenience

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.

Inter-Application Connectivity

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.

Web Applications Can Have All the Power of Native Apps

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.

Local Storage

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.

Google Native Client

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.

Not Everything is Perfect in Web OS Land

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:

But these are all tradeoffs and not show-stopping problems.

Not For Everyone and Every Task

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.

Conclusion

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.

© 2013 Nilesh D Kapadia