If you want to add AJAX to the magic collection of buzzwords supported by your Web site (and who can resist the siren call of the latest buzzword?), then you have two major options: purchase a proprietary package or experiment with open source libraries.
We've covered a number of excellent proprietary AJAX toolkits in the past, and now we're turning our attention to some of their open source rivals. Are they worth exploring for enterprise use?
The open source toolkits I examined span a wide range of what might be covered by the term AJAX, an acronym for Asynchronous JavaScript and XML that began appearing little more than a year ago. The idea of using JavaScript with or without XML to add intelligence and interactivity to a Web page dates from the earliest days of the Web, and AJAX is now one of the best ways to distribute client applications with a minimal amount of fuss.
If you're interested in whether these open source packages compete with the best commercial tools, the simple answer is: not in general but sometimes in specific details.
The best-known proprietary packages, such as Backbase, JackBe, and Tibco's General Interface all offer complete development environments with full toolkits, sophisticated event models, and debuggers. With them, you can write applications that run in the limited environment of a Web browser but offer almost all of the features of native code. None of the open source packages I looked at come close to the range, depth, and support of these commercial packages.
Selecting the six
Passing over dozens of excellent packages and thousands of perfectly adequate solutions, 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 licence 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 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.
This rough surface means that any development team should think about its environment before putting open source AJAX tools into action. If you have seasoned programmers and the ability and time to use the freedom and flexibility provided by the source code, these toolkits are great deals. If you're a newer programmer or someone without the time to wade into a project, you should think twice about the costs and consider the more professional packages.