|
|
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.