The Browser as the Platform

I wrote about this a couple of times before, but as time progresses I start to see the picture clearer and clearer: operating systems will increasingly become less important. Forget about what OS you're using, it's just a frame around what really matters: the browser. Sun used to say: the network is the computer. I would add that indeed the (inter)net is the computer, with the browser as in increasingly thick client. The browser used to be fairly limited in what it could do. It could show text and images, and that was about it. Then there were some companies that helped making websites more dynamic, some succeeded (notably Flash) and many failed (I would say, including Java applets). However gradually things were added to the browser that allowed for very dynamic behavior. Early on there was this little scripting language called Javascript, which could show simple dialogs and could manipulate the webpage a bit on the user's screen. When all browsers started to support some kind of means to make HTTP calls back to the server through Javascript, this turned the browser into an incredibly powerful platform. The application platform of the future, I would say.

The current trend is that more and more of the web applications move a lot of their logic to the browser. This is what I predicted a long time ago already. I think that soon most of the application will run inside the browser and will only make callbacks to the server for storing and retrieving data. In fact this is basically what Gmail does.

It is important to make a distinction between two kinds of dynamic websites:

  1. Sites with some dynamic content. These are sites that use Javascript and AJAX techniques just to make the experience more smooth, but do not rely on it. These sites have multiple pages and reload the whole content for most things you do. Wikis are an example of this, as are blogs and most content websites.
  2. Single-Page Interfaces (SPIs). These are the web applications that were built to replace the traditional desktop applications. You go to a single page and do not leave it for as long as you use the application. Examples of this are Gmail, the new Yahoo Mail, and many online feed readers, like Google Reader.

The real revolution is happening with the SPI web applications. These applications have important implications however and pose a number of problems:

  1. Current SPIs assume an internet connection at all times. This is unrealistic and will be unrealistic for some time. So there should be some means to download data to the browser, change it and push it back to the server when there is internet connectivity again. Dojo's storage framework makes this browser-side storage of data possible.
  2. Javascript is going to be the dominant programming language. I think Javascript is fit for the job. It has to be, developers will have to build on the current Javascript engines currently around for many years, most people do not update their browser often. A lot of interesting work is being done on making writing software in Javascript easier and more pleasant. For browser makers it means they really should start focusing on their Javascript interpreters. As more and more code will run inside the browser this is of increasing importance.
  3. Where is the user's data stored? Currently most web application providers store the user's data on their servers. The question is, do users want this? At least it should be possible to move this data around, from the service to the user, but also between services I think. This is an issue not currently addressed, and I will talk about this more in a future post.

To be continued...