A few years ago I was a firm believer in the Rich Connected Client application model, which was based on running applications installed locally on the users desktop. From the time of the Ajaxian explosion, the quality and quantity of Ajax based web applications has continued to increase, applications like FaceBook have introduced new paradigms whereas apps like Live Maps have made existing apps much more convenient and accessible. Today you have to really argue hard to even consider a desktop based application for anything that is non-computation intensive (Even this category is questionable now, for e.g. a few years back movie editing web apps would have been out of the question).
So what is it that makes the web such a successful application platform
- Uniform and simple model (Web Browser, urls, can click when hand is visible) – Once a user learns the basics of working with a web application that knowledge can be easily applied to other applications.
- Client platform independence – The decoupling of the server and client with an agreed contract (HTML+CSS+JS) means that the traditional problems of targetting various platforms with different APIs is no longer existent on the client side.
- Machine independence – The user is no longer restricted to the machine on which the application was installed. This also results in a much simpler deployment model.
- Data independence – The user’s data is now available on the network which means that not only can the user run the application from anywhere but can also access his data from anywhere.
Now what would the next generation internet application platform look like? I think that in addition to the above characteristics, the next generation of platforms would involve the following.
- Full use of computing resources available locally – Having a powerful CPU and GPU seems like such a waste when all your applications have to be funnelled through the browser. So the next generation platform would allow access to the computing power available locally.
- Better integration with the local resources – This is sort of related to the point above, but would allow internet applications to access local disks, settings, registry etc.
- Better security model – Of course all this has already been attempted with ActiveX and XPCOM, but the security models there have been weak and non-intutive to users, a better solution is needed.
So it looks like the direction being taken by Microsoft Silverlight and Adobe AIR are steps in the right direction to building the next generation internet application platform. However Microsoft has a great oppurtunity here push the envelope with Silverlight and introduce new standards for desktop integration of internet applications, their extensive user base means that any API created by them has a very good chance of being successful and catching on with the other players in this space.