In a blog entry posted on Feb 18, 2005, user interface expert Jesse James Garrett coined the term "Ajax" to describe...
The elements of Ajax had already gained currency long before Garrett, co-founder and president of AdaptivePath, a San Francisco-based user experience design firm, first used the term. Microsoft used techniques that employed client caching and cut down on server round trips when it created its early Outlook Web clients. Google's use of similar techniques helped propel its search engine to the forefront. But Garrett's 2005 blog entry gave a name to a powerful computing movement.
Today "Ajax-influenced" design is a central pattern for Web application development. Browser clients, which once seemed about tapped out, now seemed to have near limitless potential. The technology is one of the tributaries feeding emerging cloud computing interest.
Since Garret's coinage, "Ajax" has changed drastically as developers have incorporated many different technologies into the user interface—but the term has undeniably helped unleash the potential of open standards and asynchronous communication.
Ajax is still getting a lot of attention five years after Garrett's influential blog post. In recognition of Ajax' birthday, SearchSOA.com reached out to Ajax thought leaders who, via email, formed a virtual roundtable discussion on where Ajax has come and how it is expected to evolve.
Ajax framework's Eureka moment
"I'm a user experience designer. For a client project, I had designed a prototype of an Ajax application that had tested phenomenally well with users - so well that the technology team asked me to pitch the solution to the president of the company so they could get the budget for implementation of something that was (at the time) radically different from anything they'd seen," he said.
"I quickly realized that I wasn't there to 'pitch' a technology, I was there to [present] an approach," Garrett continued. "So I started thinking of ways to encapsulate that approach that would be accessible to people in management."
"And, yes," said Garrett, "I did happen to be in the shower when I finally hit upon a solution."
The design pattern grew into prominence because it helped bridge the huge user interface gap between responsive native applications and clunky Web apps. "Ajax became successful because it addressed the biggest usability issues the Web had, namely, the distracting full-page request/response cycle," wrote Mike Ogrinz, author ofMashup Patterns: Designs and Examples for the Modern Enterprise. "Google Maps was the first high-profile product to showcase the power of Ajax."
Truly, Google Maps was a big moment in Ajax-style development.
"I can still remember the first time I dragged the map around and the rest of the browser window just sat there," said Ogrinz. "It was amazing! Before Ajax developers would talk about 'Web sites' or 'Web pages they were building. It wasn't long after that we started calling them 'Web apps.'"
Ajax owes its success to many separate development efforts. As Ogrinz wrote, "On the technical side, you have to give credit to Microsoft for pioneering the XMLHttpRequest (XHR) object that makes Ajax possible, and Mozilla for quickly implementing a compatible equivalent. Ajax could have been another battlefield for the browser wars, but compatibility issues have been surprisingly few."
In fact, Ajax and JSON drove an open source movement that would wring more and more performance out of browser technology. The browser makers, who once set the marching orders, became followers, working to make sure the best new Ajax ideas were supported on their platforms.
In some senses, the combination of open standards and interactivity helped pave the way for the growth of the cloud.
"Ajax is successful because it opens the hosted model to a larger set of applications. Traditional Web applications present too much latency to the end user, so many types of application feel slow to the point of being unusable," wrote Ryan Breen, VP of Technology of Detroit-based Compuware's Gomez division. "Compare legacy mapping applications to Google Maps at the time of its release—the ability to pan around the map without waiting for a page refresh was a hugely compelling advantage, and with that change Web-based navigation was able to advance by leaps and bounds."
"This demonstrated that interaction models previously limited to client-side installed applications could now live entirely within a Web page," Breen continued.
Breen added, "When coined, Ajax represented a very specific technique: using XML retrieved via XHR to modify page contents. Ajax is now a broad approach to development, encompassing any technology which uses client-side scripting to hide latency from the user. The data is usually not XML and the network transfer is frequently not over XHR."
The toolkits and libraries for building Ajax application have gotten much better. Ogrinz said, "Products like DWR (Direct Web Remoting), jQuery, Prototype, and the many popular component suites made adoption easy and—dare I say—fun."
Ajax also benefited from the sharing of libraries. "Ajax libraries were created by the initial wave of savvy developers who sought to make their lives a little less miserable when supporting multiple browsers," wrote Breen.
The importance of nothing new
Perhaps the greatest significance of Ajax is that it provided a simple way to describe how existing technologies were being cobbled together to create a new generation of Web applications. As mentioned, the technology was not new. Microsoft released an Outlook Web client that used the basic Ajax design pattern in 1998, seven years before the term Ajax was coined. The emerging HTML5 standard is widely expected to further codify such design patterns.
"Nothing actually happened in 2005. All of the technology needed to do Ajax was in the field in 2000, maybe earlier," Crockford wrote. "JSON was developed in 2001 specifically for Ajax applications. There were a number of people attempting to develop Ajax systems back then, but they were called X-Internet and other silly things, and no one took notice of it. The Ajax term was very helpful in getting attention on this technology, but it has outlived its usefulness."
Ajax helped encapsulate the concept of interactive Web apps in a simple term. The term has caught public mindshare, but is technically inaccurate for most applications today. As Ogrinz noted, "Ajax" as an acronym was out-of-date as soon as it was coined.
While the term Ajax is often loosely used to describe many different technologies. It is often used to distinguish applications from those built using proprietary tools like Adobe Flash/AIR and Microsoft .NET/Silverlight. The Ajax community mined an enormous amount of functionality from the browser, and that mining effort has been a huge success, Crockford suggests. In effect, Ajax brought client side scripting out of the sidelines and onto center stage.
"Ajax was successful because it brought together a bunch of known, existing technologies under one thematic banner and allowed people to provide a more interactive application-style experience through a browser without Flash," wrote Justin Gehtland. "That continues to be the case, and in fact, is the wind beneath the wings of the HTML5 spec and its attendant hype." He emphasized that open standards, open tools and great interactivity create a powerful value.
If it was "nothing new," Ajax was an innovation. Open source legions helped make it happen.
"The community is large and still growing, and has coalesced around some real defining choices in style and substance. It makes for a vibrant community," Gehtland said.
Jesse James says the future is asynchronous and open
For his part, Jesse James Garrett believes that Ajax as a concept will continue because, as a design pattern, it includes open standards like HTML 5.
"Because Ajax is an application design pattern, not a specific technology," wrote Garret. "I think it will always be with us in some form. As long as people are building asynchronous applications using open standards, they're doing Ajax."
"Ajax was the right idea at the right time," Garrett wrote. "The concept summarized and brought together several different threads of what was going on at the leading edge of Web development at that time in a way that enabled people to jump on board." If they could talk, a healthy helping of interactive Web apps might agree.