Is AJAX Here to Stay?
October 5, 2005
Web development in general recently emerged from a long period of stagnation. While the web browser has become a de facto operating system for the enterprise application, there used to be only two realistic options for developing them:
- Build simple web apps that work in any web browser on any operating system.
- Take advantage of browser-specific "bells and whistles" to make more advanced web applications. These applications would generally be limited to a single browser on a single operating system or require a special plugin like Flash or Java.
There was no way to create intelligent, interactive web applications without programming for a very specific environment, which led to very poor quality internet applications, or to vendor lock-in. Consequently, many organizations have been reluctant to commit resources towards applications that would only work in very specific, controlled environments, and for good reason.
One of the most frequently discussed aspects of AJAX is the XMLHttpRequest object, which is the component that the browser uses to create this asynchronous interactivity. It's asynchronous because the user can communicate with the server without the page refresh that is usually required. With AJAX, we only get the data from the server that we absolutely need, not the whole page. More importantly, data can be posted to and retrieved from the server after the entire page is loaded. This can be leveraged in creative and powerful ways to create a more fluid browsing experience.
(Thanks to Jesse James Garrett of Adaptive Path for these illustrations.)
More than Just Hype
There is an enormous amount of hype surrounding AJAX, as well as criticism. It's only natural that there is a great amount of skepticism about whether AJAX will be just another passing fad, but some very big names in software are jumping on the bandwagon, and it seems likely that AJAX is here to stay. Google is generally thought of as an AJAX pioneer, with applications such as Google Suggest, GMail, and Google Maps all making extensive use of the underlying techniques. Microsoft has also announced that it will be releasing an AJAX toolkit called Atlas that will ease the development of rich web applications in ASP.Net. In the last six months, the number of AJAX-based libraries and tools has flourished in both the commercial and open source sectors, creating many options for developers who want to use AJAX with minimal effort. Web-based resources like AjaxInfo (www.ajaxinfo.com) and Ajaxian (www.ajaxian.com) popularize new AJAX tools and techniques with incredible speed.
When compared to competing UI technologies like XUL, XAML, Java, Flash, and SVG, we begin to see why Ajax is such a big deal. Many of these alternatives offer opportunities for similar functionality with as-good-if-not-better UI capabilities, but either force the user to install plugins, as is the case with Flash, Java Applets, and SVG, or limit her to a specific browser or operating system, as is the case with XUL and XAML. In fact there are many examples of Flash and SVG being used in conjunction with AJAX to provide an even more immersive user experience. Ajax offers the chance for developers to start writing rich applications without learning new skills.
AJAX in the Enterprise
Is AJAX ready for the Enterprise? The answer to this question may lie in its relationship to open standards, vendor lock-in, conformity to popular skill sets, and web services and service-oriented architectures.
- Vendor lock-in has always been an issue for IT investment, and continues to be on the web. By avoiding proprietary technologies on which to build large-scale enterprise applications, firms are mitigating some long-term financial risk. AJAX is a set of technologies that are based on open standards and partially avoids the issue of vendor lock-in.
- Another big selling point for AJAX is the way web developers who are familiar with the underlying technologies can begin developing with AJAX relatively quickly, while the learning curve for alternative technologies is comparatively steep. By leveraging the synergies of skill transference, firms do not have to invest in significant retraining of their developers.
- Service-oriented architectures (SOA) have been gaining popularity in major enterprises around the world for several years now. SOA is an approach to building large distributed systems on a composite set of loosely coupled business services. Just about every major enterprise software vendor has an SOA strategy and product suite match. In many SOA models, business services are exposed through XML web services, and AJAX clients are ideal consumers of these services.
The question then becomes, is the AJAX platform powerful enough to build enterprise-quality Rich Internet Applications (RIA). This issue is highly debated in the web development community (http://blogs.ebusiness-apps.com/dave/?p=32). Here are some of the arguments against AJAX for RIA:
First of all, Java suffers from a similar problem, with source code weakly protected in its distributed form. This, however, has not stopped businesses from deploying large Java-based applications. Another reason this argument fails in an SOA environment is that the AJAX application doesn't need to possess all the business secrets required for the program; they just need to orchestrate the business services that perform these activities.
This broad argument against using AJAX in the RIA realm may be somewhat short sighted. Within an enterprise, the need for interoperability may outweigh more fine-grained standards centering around performance, IP, and code inefficiencies. Consequently, looking into the future, approaches like AJAX which focus on platform independence and RIA will become important in the realm of enterprise applications.
The trend in web application development is towards open standards and vendor neutrality. Current HTML web applications don't provide the user experience users have come to expect, so the development community has long needed a viable technology suite to develop rich internet applications. AJAX fits all of these requirements and has experienced significant uptake by developers and enterprises over the last year. It's always challenging to predict technology trends, but if we look back at Java's evolution we can see that there are a number of similarities.
A decade ago, Java was going to revolutionize the way that developers built applications. Instead of building different versions of an application in order for them to run on different operating systems, developers could target the Java Virtual Machine, and then their software would run on Macs, Windows, and Unix-based platforms without any further customization. Huge corporate information systems are being built on the Java platform, and a number of large client applications are also built using Java. Java also suffered from performance and usability issues related to poor user-interface libraries, but overall it was quite successful.