Will Atlas slow the move to smart clients…?

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.


  • I agree with you, especially from the "round peg through square hole" analogy. Thumbs up on that one! I too have been pounding out web based business apps since pre-ASP days. When I first saw WinForms it was like a heavenly light...and then Click Once and bang, why do browser based apps? In our organization (Fortune 500 financial services) it simply is inertia. As much as the browser based app is the dancing bear (it's not that it's a good dancer, it's that it can dance at all...), it's what the infrastructure guys are comfortable with. Microsoft still doesn't have CLR ubiquity (we're pure XP on the client but some still don't have CLR) so the IT guys want (and get) IE6 chubby clients, with really, really cool Win32 menus and effects, that work pretty good, but are pale in comparison to the heavy equivalents. We have an internal AJAX like framework, all Async XMLHTTP, very slick. All that's missing is the robustness and productivity gained by .Net....oh well. Add this to the FUD mucked up by Avalon and Longhorn and we'll never do WinForms apps...

    Great post!

  • The reason MS is pushing AJAX is that people realized just recently that it does a lot of things better and easier than anything else, and MS wants to be at the center of anything popular. It is not because MS likes the web, in fact it hates it because it can't control it like it can the desktop. MS has been trying as hard as it can to get people away from the web and back to fat clients, because that's where it makes all its money. MS is nonetheless being forced to support Ajax because it has caught on and so MS is forced to follow. Remember, monopolies rarely survive technological revolutions.

  • Eduardo: you do realize that all of the technologies that make up AJAX were invented at Microsoft in 1998, right?

    Just ask Jean Paoli.

  • Eduardo: Uhmm, shouldn't be over @ slashdot?

  • Spot on Keith - this creates confusion.

    I will bet that even with the framework support customers are going to be struggling to build usable applications (the downside is that they will try...fail..and then come back to the smart client model)

  • How could you develop a smart client you don't know what OS your user will be on? The browser is the lowest common denominator it is frustrating for winforms developers to have to write web apps because they lose so much of the rich functionality but it works.

Comments have been disabled for this content.