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.
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.
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.
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.