Free Newsletters
Technology & Business Daily

InfoWorld
Log-in | Register

Surveying open-source AJAX toolkits

Packages from Dojo, Zimbra, Yahoo, Microsoft, Google, and OpenRico/Prototype showcase the variety of libraries available to AJAX developers


The project Web site and the code have the flavor of an exceptionally fertile open source project run by a neutral team of enthusiastic developers. The management is clearly aiming to encourage a wide range of contributions — as long as they fit Dojo’s basic philosophy demanding simplicity and clarity.

Return to AJAX report

DOWNLOAD PDF

InfoWorld's special report Open source AJAX toolkits


Dojo has an excellent editing package, a wide selection of animating boxes, some drag-and-drop tools, and much more. A tool for providing maps from Google and Yahoo just appeared in the latest 0.3.1 version.

I feel, however, that Dojo suffers a bit from the kitchen-sink-like quality of popular open source projects. Some parts of the library are well-documented and illustrated by a set of good demo pages. Other parts have little documentation, leaving developers on their own — the manual as well as the book describing the project have large holes typical of volunteer-built documentation.

Adding a bit of the Dojo toolkit to your Web application is pretty easy. The source code is modular, so your application only needs to load the necessary pieces using Dojo’s loading mechanism. In many cases, all you need to add is an extra attribute, dojoType, to your working HTML, and the code will do the work when it loads the page.

Dojo continues to improve as it attracts more developers with more ideas and code from other projects. The leaders are doing a good job of keeping these contributions in order, and there’s every reason to expect more sophistication in the future.

Zimbra Kabuki AJAX Toolkit
When Zimbra appeared as a complete solution for offering e-mail and calendar management to an office, many were impressed by the package’s sophisticated use of AJAX at all levels. Every widget was designed to have a real live feel. 

Although the entire suite of tools is available under a community source license, Zimbra chose to spin off its Ajax toolkit in a separate package called Kabuki that’s licensed under either Apache or Mozilla. The toolkit includes some of the practical tools and widgets but not all of the pieces found in the larger package.

That doesn’t mean Zimbra’s toolkit comes up short, though: Kabuki has an excellent editor, a nice tree package, and a layout mechanism that can be used to build sophisticated user interfaces.

Zimbra’s system doesn’t have the same polish or sophisticated animations as Dojo or Yahoo’s AJAX package. The widgets are quite functional, but they’re also fairly basic; there’s no sign of the sophisticated eye candy some people expect to see when they start using JavaScript to drive the UI.

You can fix some of this with the right style sheets and some good design, but it’s going to take some extra programming effort. If you’re willing to take that on, the Zimbra AJAX mechanism is still filled with largely practical tools.

Google Web Toolkit
The oddest toolkit in the batch may be Google's. Whereas the others are written in JavaScript and meant to be integrated into your own JavaScript code, Google’s Web Toolkit is written in Java itself and translated into JavaScript. When you write your code, you write Java and watch it get translated into JavaScript.

This isn’t as magical as it sounds because JavaScript is pretty close to a superset of Java, at least in a cosmetic sense. It’s not complicated to strip away some typing information from the Java code and end up with something that resembles JavaScript.

The translation is, however, a fascinating solution and one that Java programmers will both like and worry about. I found myself fretting over questions about when JavaScript will behave a bit differently than Java — something that I don’t do very often.

The breadth of the toolkit is solid. Google has built in many of the standard widgets but hasn’t included some of the flashier mechanisms for animation.

I found Google’s system surprisingly easy to use — it ended up being close to working with a fancy version of the AWT (Abstract Window Toolkit) or a simpler version of Swing. The package is designed to build a full application that runs inside the browser, not just add a bit of zip to your flat pages.

Open Rico and Prototype
One of the more prominent, pure open source AJAX projects is made up of a loosely knit coalition of projects including Open Rico and Prototype. Whereas Dojo is a single big, unified project, these two and a few other smaller projects are all technically independent.

It’s anyone’s guess whether this loose bond is better or worse politically, but the results are just as impressive as those of the other libraries.

Rico and Prototype share more of an emphasis on animated effects and less on some of the pragmatic tools. For example, there’s no tree and no emphasis on collecting data from a form, but the animated effects and the larger tools — like a set of accordion panels — are all there.

The Prototype library is a set of basic, low-level tools aimed at programmers. It has clean, simple functions, all given single-letter names to speed downloading. It’s more of a shorthand for the common functions, and one you might want to adopt for your own code regardless of whether you use the larger mechanisms because it’s a disciplined approach to writing smoother, simpler code.

Rico is a collection of some of the popular Ajax widgets and animations built on top of Prototype. You don’t need to use Rico with Prototype, but it does make building AJAX apps simpler if you want the effects they offer.

I especially liked Rico’s LiveGrid, a set of routines that enhance an HTML table by fetching data in the background as you scroll through the rows. It simplifies displaying a large volume of data in a small set of rows without forcing the user to load page after page. I often think of Rico as a smaller, simpler version of Dojo that does a few things better than Dojo, such as enabling drag-and-drop support.

Microsoft Atlas
The software world is often divided into two groups: Microsoft and everyone else. This is almost accurate when it comes to JavaScript and AJAX. Microsoft helped legitimize the space by creating some highly sophisticated AJAX features, and it continues to innovate with Atlas.

The Microsoft Atlas library may be free, but getting the package is not simple for people who aren’t using Microsoft’s Visual Studio. Microsoft is much happier if you download hundreds of megabytes of development tools before installing the Atlas JavaScript libraries that handle the bulk of the work. You can’t really get at the .js libraries without jumping through the hoops — I got nowhere with my Mac.

The libraries themselves are a bit less demanding. They offer good cross-browser support for Firefox and Safari users, something that may surprise Microsoft haters. But there are limits to even this commitment: I saw the phrase “Due to a known issue with Atlas on Safari” several times in the documentation, and there were similar notes for Firefox users.

Peter Wayner is contributing editor of the InfoWorld Test Center.
Continued
« PREVIOUS PAGE | 1 | 2 | 3 | NEXT PAGE » 


Talkback:

commentPost a Comment

 

MOST COMMENTS

 
 





Virtualization: A Step by Step Approach to Success
Your virtual machines can be up and running in a matter of minutes. HP and Citrix have integrated XenServer with HP ProLiant servers and management tools, powered by hardware-assisted Intel Virtualization Technology to enable high- performance, cost-savings solutions for server consolidation and disaster recovery. Sponsor: HP

»  Click here to view this Webcast
  The Data Protection You've Been Looking For
Enterprise data is of supreme importance. If you can't find it quickly, it's worthless. If you lose it, it's a crisis. This IT Strategy Guide explores how to keep your data safe.

»  Click here to download now

- Special Advertising Partners -
WHITE PAPERS
 
  • Protect Your Data with SSL - Discover how to increase customer confidence in your site with the latest solution in SSL, Extended Validation (EV) SSL ...
  • Need simple, low cost server virtualization? - Do more with less. Support fewer servers. Simplify disaster recovery. Implement proven, easy-to-use server virtualization...
  • Virtually Limitless Virtual Storage - Do you need virtualization space savings of 50% or more with virtually no performance impact? You might be able to get storage...
  • Invisible IT? - The goal of IT is to become an invisible entity within a larger organization. Eliminating visibility and road blocks IT ...
  • It Really Is Easy to be Green - "Green IT" is a popular concept. And IT organizations are learning the influence that IT purchase decisions have on data...
  • Key Strategies For SOA Testing - SOA requires a unique approach to testing. Unless you're willing to reorient your testing procedures and technology now,...

» Technology White Papers Library

Technology White Papers by Topic

Technology White Papers E-mail Alert

Find out when the latest white paper is available:
 
 
INFOWORLD MARKETPLACE
 
» BUY A LINK NOW
 
 

Video

 
 
 

Podcasts

 
 
 

 

Columnists

 
 
 

Resource Center


Ads by techwords beta  [See your link here]
 




Sponsored Technology Links

 
 
 HOME  NEWS  BLOGS  PODCASTS  VIDEOS  TECHNOLOGIES  TEST CENTER  EVENTS  CAREERS  IT EXEC-CONNECT   About | Advertise | Awards | RSS | Contact Us 

Copyright © 2008, Reprints, Permissions, Licensing, IDG Network, Privacy Policy, Terms of Service.
All Rights reserved. InfoWorld is a leading publisher of technology information and product reviews on topics including viruses,
phishing, worms, firewalls, security, servers, storage, networking, wireless, databases, and web services.

CIO :: ComputerWorld :: CSO :: Demo :: GamePro :: Games.net :: IDG Connect :: IDG World Expo
Industry Standard :: IT World :: JavaWorld :: LinuxWorld :: MacUser :: Macworld :: Network World :: PC World :: Playlist