Tuesday, April 25, 2006

AJAX-CLient Side

The client-side technology known as Ajax continues to grow at an explosive rate, both in visibility and actual use. The number of Web developers who are learning Ajax and incorporating it into their applications is such that, increasingly, development managers must assess Ajax-related proposals from their technical staff.

What is Ajax? What value does it provide? Why is it growing in popularity? What toolkits are available, and how do they compare? What are the risks involved in adopting Ajax? What are best practices for incorporating Ajax?

Ajax is the name given to a disparate collection of programming techniques that involve browser-side technologies such as JavaScript, Document Object Model, and background transfers between server and client of XML data and JavaScript objects. Ajax gained prominence early in 2005 with the widespread user adoption of innovative Web-based services from Google: Gmail (Web-based e-mail) and Google Maps. More recently, it seems that every new high-profile startup company associated with the emerging "Web 2.0" phenomenon (for example, Zimbra, 37 Signals, Flickr and SocialText) has an Ajax aspect to its offering. Larger, established companies have joined the trend, with Ajax-centric redesigns of their properties recently completed or well under way (for example, Yahoo Mail and MSN Hotmail).

In the tech world, there are many phenomena in information technology that undergo a rapid increase in visibility, as analyzed by Gartner in the Hype Cycle model. Technology initiatives such as Java, .NET, "push," Web services, Flash and service-oriented architecture (SOA) have all enjoyed a period in the limelight. However, few of these can rival Ajax in terms of the "hockey stick" usage graph that marks a rapid upward movement in adoption. In just a few short months, Ajax seems to have become the most prominent topic of discussion (and adoption) among Web developers.

Ajax has enjoyed rapid growth because:

  • It is concrete and conceptually simple. A modest understanding of Web technology is required, but less so than with other, more complex technologies, such as WS-*.
  • A little goes a long way. short snippets of Ajax code added to an existing application can produce beneficial, highly visible results.
  • It has a high degree of compatibility with established Web applications. Ajax can be folded into existing applications without re-architecting.
  • No significant investment is required to purchase new tools, servers or infrastructure, in contrast to heavyweight technologies such as Java 2 Platform, Enterprise Edition (J2EE) and .NET.
  • It fills a need. Ajax addresses a long-standing complaint among users and developers, who chafe at the stark "plain-vanilla" HTML user interface. (Of course, as stated in other Gartner research, often the real need is for a user-centered design process that has a pragmatic focus on high-usability interaction patterns, rather than technology or tools. Nonetheless, the perception of an overly constrained HTML interface remains.)
  • It provides a wide range of choices. Developers interested in using Ajax can choose from many alternatives among commercial and open-source offerings. Unlike mature categories of software, such as databases, where there are only a handful of choices (both open-source and closed-source), with Ajax there are dozens of choices.

The potential benefits of using Ajax are:

  • Improved user experience (greater responsiveness, reduced latency, preservation of context), which leads to increased user productivity; satisfaction; better adoption and retention; reduction in the number of errors, Web page abandonment and support calls; and less reliance on alternative (more expensive) communication channels (such as in-person visits and phone calls).
  • Increased performance as a result of decreased system load (through more compact page representation and caching of elements across page requests).
  • Potentially greater maintainability and flexibility, as a result of modularization, code reuse and consistency.

These benefits are by no means guaranteed and have more to do with sound development process and architecture than a particular technology, but they are often cited as part of the rationale for an Ajax conversion. Furthermore, these benefits are not restricted to Ajax, but can also result from non-Ajax RIA technology, such as Macromedia Flex or Laszlo Systems' OpenLaszlo.

No comments: