But the thinness of the browser client has also made the Web rather aggravating, especially if you want to do more than view static documents or images.
With traditional Web clients, the screens are so dumb that each click requires a roundtrip back to the server to refresh the entire page. By contrast, traditional fat client applications typically carried local logic that minimized or eliminated such back and forth trips.
Consequently, if you Web-enabled a typical client/server application, you had to dumb it down because the client lacked the embedded logic to perform even the slightest validation or navigation function on its own. That, plus the sluggishness of first-generation dial-up connections gave the Web the nickname of Worldwide Wait.
Not that there haven’t been attempts to enrichen the Web client. Java applets and Microsoft ActiveX controls were early attempts to download client-side logic at run time. ASP.NET has also sported a feature where you could update runtime views.
The only problems? All of these technologies were to varying extents proprietary, and each had their own unique drawbacks.
Java applets had slow performance and suffered erratic browser support. ActiveX controls shared some of the same speed problems, plus the disadvantage that they could be hijacked by malware. As for ASP.NET, few were aware that it actually supported runtime updating.
But the IT industry hasn’t given up the struggle to bulk up Web clients. Over the past year, Macromedia, Microsoft, and IBM have been drawing their own lines in the sand.
Macromedia’s strategy has been to morph the ubiquitous Flash plug-in from Web page animator to full rich Web client environment, courtesy of their emerging Flex framework.
Microsoft’s new Windows Presentation Foundation is their bid to build smart Web clients using extensions of the .NET Framework.
Meanwhile, IBM is working behind the scenes, backing an obscure startup called Laszlo, with a rich client that they hope to take down an Eclipse-like open source path.
However, early this year, a new alternative based on old technology has emerged with the unlikely name of Ajax. Coined by Jesse James Garret, a director of the consulting firm Adaptive Path, he described a programming technique that was subsequently made famous by Google Maps for using technologies that are already well-worn Web standards.
Although each of the pieces performs critical functions, it is the XML over HTTP part that is the key to Ajax’s performance edge.
The goal of all of these technologies is to allow you to use the Web without requiring a complete refresh each time you enter data, click a mouse, or drag a cursor. For instance, when you move the cursor in Google Maps, you don’t reload the entire screen, but only the elements that have changed.
Among developers, the key to Ajax’s appeal is that no vendors own the underlying technologies. From that perspective, the emergence of Ajax resembles that of Linux, in that both evolved outside the vendor community — and initially, under the radar. Web developers have been using some of the building blocks of Ajax for nearly a decade.
Dion Almaer, a principal with consulting firm Ajaxian, recounted that his firm was already actively helping customers take advantage of DHTML (Dynamic HTML, a technique that uses some of the Ajax features). Then Ajax came out, and we had to change all of our slides, he recounted.
However, Ajax is not without its drawbacks. Because they require logic deployed at run time, there is a slight delay to loading Web pages that might look familiar to Java applet or Active X control veterans.
Ajax also doesn’t handle multimedia very efficiently. And there are problems with the back and forward navigate buttons. However, this is an issue that afflicts any rich client where the Web page changes between refreshes.
Furthermore, incumbents are hedging their bets. For starters, Microsoft will make a subset of Windows Presentation Foundation cross platform. It is also supporting development of AJAX programming in Quartz, the code-named Web page layout tool that will be part of its upcoming UI tools family. And with Project Atlas, Ajax clients can make calls to ASP-.NET Web pages.
In fact, if you divorced Flash from the Flex framework, contends Mr Almaer, it could very well become just another Ajax component. In that case, it would be the piece that handles the rich media support.
According to Mr Almaer, the competition between Ajax and vendor alternatives need not been an all-or-nothing game. He says Ajax is fine for basic tasks such as validating data entry and screen navigation. And he also believes it would provide a far more efficient alternative for portlets, because it would eliminate the chatty interactions between client and server involved with Web services or Java portlet approaches.
By contrast, Mr Almaer says that Ajax is weak when it comes to rich multimedia presentations or computation-intensive applications, where the framework could not easily cache all the data locally. That leaves room for other approaches.
Would it make sense to use Ajax for deploying network-based alternatives to Microsoft Office? Although there has been abundant speculation on whether Sun and Microsoft might extend this week’s partner announcement to OpenOffice, it’s questionable as to whether Ajax would be the way for Google to challenge Microsoft Office with a hosted alternative.
While typing a simple two-page document would likely be fairly simple for Ajax to cache on the client, entering a complex, data-intensive spreadsheet would be another story.
But that doesn’t mean that Ajax can’t handle complex apps, says Mr Almaer. For instance, while Google Maps is very sophisticated, Mr Almaer says that the rocket science is not in the Ajax interaction, but in the geocoding engine that resides back on the Google server.