Monday, December 05, 2005

The Desktop Reinvention - Part II

Previously I discussed how the advent of a simple approach called Ajax, made developers realize that online apps can be made as crisp and enjoyable as the desktop apps. Infact world-wide-wait was the unfortunate byproduct of poorly implemented websites rather than a
inherent flaw in the Internet. Today I am going to argue that we are headed in the right direction but we are still not yet there, and talk about what needs to happen, to make it possible.

Lets start off by dreaming about a future in which the OS Platforms (Windows, Mac, etc) take a back seat to the Browser Platform, and regardless of what kind of PC a user owns, they would predominantly be running Internet Apps on their computer. Infact at this point computers
will come in all shapes and sizes, because all they need is a JavaScript enabled browser and an internet connection. As an example think of Mr Foo who is a computer programmer playing Solitaire on his office computer everytime he is waiting for his program to be compiled. Instead of playing the lame version that comes with the Windows he actually plays the latest version that runs off of the internet. It looks and feels just like the 'real' solitaire but in reality it is an online game being displayed by the next generation web browser (think in terms of Mac Dashboard widget).

So what's so great about this internet based Solitaire ? For one thing, he can stop playing anytime he wants (like when the boss comes in), and continue the game from any computer. Maybe his home PC or even the little dashboard computer on his car while waiting for the traffic lights, or his latest hand-held computer (something like a PSP) while waiting in the grocery line. Regardless of where he plays it from, he is playing the same game continuing from where he left off. The point is, this program is not tied to a single computer since it actually
internet based. Is this possible ? Very much so. Today, such an internet based program will look and feel like a web page because the web browsers are still in their infancy, but in future, there will be web browsers that are specially designed for these internet apps. They will be able to render HTML/DOM/CSS/XML/XUL based data (of course all these standards will under go revisions and enhancements in the meantime) to display apps that likes not like a web page but rather a real desktop application.

Infact this is a reality even today to some extent in the form of the fancy Dashboard widgets on Mac OS X Tiger. These widgets are simply HTML page embedded with Javascript code (or Objective-C if you desire) but can produce the most enviable widgets with fancy animations, transparency and what not.

At this point many of you will be wondering as to why I am so amazed and fascinated by the prospects of Internet Apps when web applications were the buzzwords of yesterday. I have to make it clear that we are not talking about the traditional web services or web applications which as really application portals built around some specialized online service. For example, a bank which has abundant data related to the financial markets might provide an online service related to stocks and portfolios. Companies like Yahoo! which have abundant directory information could provide online portals for finding and browsing anything, but I am not talking about such services. They need to be online because there is no other choice. Instead, I am talking about applications that need not have anything to do with the internet. Apps like Solitaire, games, graphic tools, development tools, word processors etc. Things that have no business running off the internet, and yet a future where it makes sense to do precisely that.

Talking about word processors, there is an interesting online service called Jot Spot which already do something like this. And guess what? they indeed use a lot of Ajax techniques and make you feel like you are typing into a regular word processor, not an online one. Infact you can use this as an example to see the advantages of internet apps. It is so easy to add collaboration and data sharing to any app that runs off the internet, that JotSpot turned a simple word processor into a unique collaboration tool.

So why do I say that we are not there yet ? To take an rough analogy, the internet platform is like the advent of microprocessors. Ajax is like the assembly language. Yes you can build entire systems in assembly language, but very few in their right mind would. What we need is a set of development tools and standards for building the internetapps. Toolkits for creating truly reusable components and libraries.

In short an operating system is needed to bind all these together and to harness this new powerful platform.

Today, there are a lot of places you can download bits and pieces and put together something. In the next part I am going to discuss these bits and pieces and how a comprehensive solution could incorporate some of these pieces in creating an real operating system for this Internet
Platform.

0 Comments:

Post a Comment

<< Home