Browser as an OS


It seems as if the browser is becoming easier to understand than other applications for people who don’t know much about computers in general.

For example, if an application has a settings dialog and you ask the user to go back or close the dialog, they aren’t always sure what to do – should they press Cancel, OK or the X in the top corner? – On the other hand, in a browser it’s quite obvious: press the back button.

Should applications be built with interactions more like browsers, or should you simply build the application around a website?

The page model

The browser’s page based model has some merits in the way that it usually is simple to understand: you perform certain actions and click a button to proceed, or back to cancel and go back where you were, and the X button in the top corner always closes the application itself, not just a dialog.

Some of todays web apps are going more towards the desktop model of dialogs and windows and whatnot. While you may think that providing a familiar interface would be helpful for the users, the real question is whether that actually is familiar to them or not.

Your <insert computer illiterate relative> may know how to do some basic actions in Windows, but the chances are they’re much more familiar with the browser. Putting all the complex parts and interactions from desktop apps into the browser may not be such a good idea afterall, and while it may be more convenient for power users, it can make the applications more confusing to the less skilled.

Existing applications

I haven’t personally seen many existing applications that would use a web-style approach. Sure, the Windows Explorer may have back and forward buttons, but that’s where it ends. NVidia’s Network Access Manager control panel is one of the few browser-based “local” applications that I can think of.

Using web technologies, it could be easy to create cross-platform applications: almost every imaginable device with enough power to run a browser can understand HTML, CSS and JavaScript to provide a relatively similar result.

So why don’t we see more applications such as these? While the browser may be very available, the problem is that the languages the browser understands natively are so sandboxed that you can’t even save data to the hard disk with them. Nvidia solved this problem by installing Apache along with the Network Access Manager to allow server side scripts to perform the bigger tasks. Not exactly an optimal solution in my opinion – I already had Apache installed to begin with.

There are of course things like Google Gears and Adobe AIR. The problem with both of these is again that you would need to install the appropriate programs before you can run anything developed with them.

There may be hope

While there are many problems at the moment, the future may bring some advances that will make this possible: Opera is working on a spec for File I/O in widgets, which would allow developers access local files in Opera widgets. Let’s hope this work gets eventually implemented in other browsers as well.

File I/O would be a big step towards being able to write “proper” applications which run in browsers. There is still many other things remaining, such as being able to access devices better. The simplest way would be to install some kind of a runtime on the computer (*cough*activex*cough*), which would allow us to better hook into the underlying OS.

And there is still the problem that JavaScript isn’t exactly fast, but the recent developments in browsers may only be the beginning. JavaScript may indeed still get faster.

The File I/O spec is far from being implemented in all browsers – it isn’t even available in the most recent stable version of Opera – but one can always hope.