I have been building applications on the web for almost a decade now; real applications used everyday by real people, not web sites you touch every once in a while. In my experience I have learned many things but one important element can be summed up in two words – browsers suck.
We have taken browsers and forced their square asses through round holes only to find that once we pushed it through there was another hole in a different shape waiting on the other side. Browsers are simply not an ideal platform for the presentation of data; they are certainly not ideal for the manipulation of that data. Don’t get me wrong we have come a long way since IE4 blew Netscape out of the water and ushered in an era more friendly to developers but let’s face it, the best of web applications are poor facsimiles of the real thing. What are we trying to do but merely mimic Windows.
We get excited by things like OWA in Exchange 2K3 but when questioned about the excitement the answer tends to be something like “It is so much like Outlook 2003, it is really great.” Think about the absurdity of that, we are excited because it is a pretty good fake.
ScottGu today announced Microsoft’s attempt to up the AJAX ante with Atlas and while exciting and applause worthy (and something I will most certainly use) I question its effect on the long term migration to a platform which is technically more elegant and financially (to MSFT) more fruitful. I am speaking about ‘Smart Clients’, Windows based applications with a native understanding of the web and specifically web services. The value of the web is not how pretty we can make our HTML but the content described by it, this was difficult to explain to people but the growth of RSS has made it more clear – the value is the data and not the presentation.
With the widespread adoption of managed run times like the .NET Framework and Java runtime some of the major challenges that gave rise to web based applications are being answered. Browsers and HTML in general gave us platform independent consistency. As the managed runtimes make their way on the nearly every new PC made and the majority of actively used existing ones this challenge is seceding. The runtime is becoming the consistent bedrock that developers need as a target for application development. Another great advantage wrought by the browser revolution was the obviation of the need for software distribution. Versioning issues and the physical act of installation on a client machine presented incredible engineering challenges and browsers simply did away with that. Today we are seeing more and more applications which update themselves and the Windows Forms team has served up a great piece of technology with ClickOnce deployment which will almost eliminate the original problem of distribution all together.
If the value proposition of the web is distilled down to the broad availability of the value asset (the data) then one could argue our applications can and should move to a model that best exploits that data for useful purposes, a model that takes advantage of the power of the PC and richness of the Windows user experience to give the user the best model of data availability and manipulative functionality. This is the course plotted by people building smart client applications and it is most certainly the right course; why then are people still building new applications using methods that don’t make sense anymore? Will Atlas merely exacerbate the problem by taking us further down a road of “works good enough” and effectively slow the migration back to Windows based applications.
My point is that we got in bed with browser based applications because of problems that are gone now (or very close to gone), will the continual advance and introduction of technologies that make life “more like” the real thing only delay to move back to the real thing?
This is not to say that Scott’s team should not build Atlas, of course they should and they should do it in classic Microsoft style: better than everyone else.