An Open Source AJAX Comparison Matrix

pen source AJAX frameworks and toolkits have matured to the point where they can handle just about any rich Internet application development task. To provide a reference guide for how well they handle particular tasks, I developed a side-by-side comparison matrix of the most popular ones. I selected the open source frameworks that the Ajaxian.com 2006 Survey recently identified as the most popular. Ajaxian.com is a leading online resource for the AJAX community, operated by early adopters of the technology.

Specifically, I compared the following frameworks and toolkits:

One might say that comparing these five offerings is like comparing apples and oranges. Each one has its own forte, and their levels of maturity and corporate backing vary. As such, my goal isn’t to declare a clear winner by comparing the products directly to each other. Instead, the matrix assesses how each measures up (irrespective of the others) in three key evaluation categories:

  1. Installation and administration procedures
  2. Development aspects: Richness of the API, extensibility, support for multiple server languages
  3. Support and quality aspects: Maturity of the framework, stability, availability of documentation, third-party resources
Editor’s Note: To obtain the values for the matrix in this article, the author made qualitative comparisons between the included frameworks/toolkits based on his extensive experience as a software architect and developer. Individual measures shown here may not reflect other users’ experiences. The measures are intended to be overall guidelines.

The Comparison Matrix
Use the legend below to interpret the matrix results. Scroll down to view the actual matrix.

Legend
5 ? Excellent. Most of the implementation aspects are outstanding. 2 ? Below Average. Framework barely supports the feature, but it is sub-par in almost every aspect.
4 ? Very Good. Some of the implementation aspects are outstanding. 1 ? Poor. Framework implements the feature poorly.
3 ? Average. Framework supports the feature. N/A. Framework has no support for the feature.

?

Prototype with Scrip.aculo.us

Dojo

DWR

YUI

GWT

Installation

?

?

?

?

?

Packaging and Distribution

4

4

3

5

5

Browser Deployment

4

4

4

4

4

Development

?

?

?

?

?

Integration with Development Frameworks

5

4

N/A

3

1

Availability of Web Widgets

5

3

2

5

4

XML/DOM Utilities

4

3

2

4

4

Cross-Browser Compatibility

4

3

3

4

4

Extensibility

5

3

4

4

4

Graceful Degradation for JavaScript Support

3

3

3

3

N/A

Product Support

?

?

?

?

?

Documentation

4

3

3

5

5

Examples

4

2

3

5

5

Third-Party Documentation

4

4

2

2

2

Evaluation Criteria
While the scores in the matrix are based on practical experience and on the knowledge I gained while developing the various versions of the sample project for the article “Putting AJAX Frameworks to the Test,” the evaluation was still a subjective process. For example, what I may consider incomplete documentation, others may consider a work-in-progress; I disdain packaging deliverables as tar.gz libraries, but others may view it as a pragmatic approach. Furthermore, some of the evaluated frameworks are yet to fully mature (e.g., Dojo is still in version 0.4), so some scores likely will change with subsequent releases.

Installation and Administration Procedures (back)
This section of the matrix evaluates the relative ease of installing a framework or toolkit. How easy is installing it across different systems? Different browsers? How easy is it to maintain as new versions are released?

Development Aspects (back)
This criterion probably is the one that is of most interest to us developers. It quantifies the richness of each framework’s support for common AJAX tasks such as transparent cross-browser asynchronous calls, the richness of its API, how many widgets it includes, how easy it is to customize and extend, and its support for direct integration with server-side components.

Support and Quality (back)
Although they are open source, one can view the frameworks and toolkits as products in and of themselves. As such, they carry an expectation of some level of formal or informal support, product documentation, and testing and quality assurance. This Product Support section of the matrix evaluates this aspect.

Comments on the Evaluation Results
Of all the frameworks I evaluated, the YUI library felt the most complete. It offers balanced support for the most common tasks required for AJAX applications, a complete documentation set, great examples, well-established installation and release routines, professional-quality support, and decent adoption in the Web community.

In certain areas, Prototype with Script.aculo.us truly excelled over any other I evaluated. For example, its extensibility and creative extension of the JavaScript language were unmatched. It is a widely adopted framework with great acceptance in the developer community and among the authors of application development frameworks such as Ruby on Rails.

Dojo had the best support for server-side languages other than Java. It also has a strong focus on accessibility features as well as on pure JavaScript-oriented extensibility. Its documentation, however, is very spare, and using it for development (it’s currently in version 0.4) feels less organized than that of the other framework and toolkits.

DWR is a creative Java-based framework with strong support for integration with server resources. However, it lacks typical rich AJAX features such as the interactive widgets and dynamic components found in the YUI or Script.aculo.us frameworks as well as in the GWT.

Finally, GWT is another Yahoo-like institutional framework with strong corporate backing. Google has developed, documented, and supported the product well. Its main limitation is that it is Java-only. So while Java developers will be able to work with it very easily, non-Java developers will either need to learn Java or find another solution altogether.

In summary, if you believe in choice and diversity in your Web development solutions, the news regarding open source AJAX frameworks and toolkits is good. In general, they have much to offer and are improving in the areas where they are lacking. With some research and hands-on exploration (which I hope this matrix can help you with), you likely will find a suitable solution for just about any AJAX development task you face.

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

More From DevX