Surveying open-source AJAX toolkits

31.07.2006

Selecting the six

Passing over dozens of excellent packages (http://edevil.wordpress.com/2005/11/14/javascript-libraries-roundup/) and thousands of perfectly adequate solutions (http://wiki.osafoundation.org/bin/view/Projects/AjaxLibraries), I selected high-profile toolkits supported by the most stable organizations: Dojo, Google Web Toolkit, Microsoft Atlas, Open Rico and Prototype, Yahoo AJAX Library, and Zimbra's Kabuki AJAX Toolkit. Microsoft's Atlas may not be open source -- the license includes terms that would rankle a devotee -- but the code you create with the system is yours to license as you like, and you'll be able to create Atlas apps with few practical restrictions.

The six packages I examined all offer a number of extremely useful user interface widgets and background tools for simplifying the process of building an AJAX application. They will be most interesting to developers with running applications who only want to add a new part or update a page. If you want to add an animated panel or a live table, for example, you can usually cut and paste them into place; the examples are generally good enough to help you accomplish the basic routines.

Still, there's often a need to fidget and fuss with the code if you want to do things that are even slightly different from the established framework. It's a feeling that will be familiar to most programmers who have used open source: The code is often quite nice, but the developers seem more interested in getting it out the door than re-engineering it until it's even easier to use.

For instance, with some of these tools it took me just a few minutes to add a table of data (http://www.infoworld.com/video/archives/2006/07/screencast_ajax.html orhttp://www.infoworld.com/video/archives/2006/07/screencast_dojo.html) that could be sorted on the client -- if I imitated the example code as closely as humanly possible. But if I tried to improvise or do something differently, the code would break, and the documentation was often quite unhelpful.