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.
These notes, however, concerned relatively minor details such as whether a popup box vanished when someone clicked outside it. The very fact that the notes are there is more of a testament to Microsoft’s commitment than an indication of its failures.
Atlas’ collection of widgets is a bit sparse, at least compared with the other offerings; there are no big editors and only a few animation tools. Much of the work is instead devoted to integrating the AJAX with the server, in this case the .Net Web services. The documentation and the examples in these cases are excellent.
The code is clearly meant more as an extension of the .Net platform, not a tool for doing slick things on the client. If you’re heavily invested in .Net and you want to leverage the system’s Web service infrastructure, Atlas is a good way to add some life to your Web pages by consuming services there.
Yahoo AJAX Library
Yahoo’s AJAX library is not only a solid collection of functions but also a good illustration of how to publish open source software. The code for adding a core group of widgets to your Web application comes in a zip file, and Yahoo offers a wide variety of examples and design suggestions. Many of the routines come with six to 10 different examples, all with sample code and demonstration pages.
This approach is markedly different from the other packages because Yahoo is just as intent on pushing a clear design philosophy as it is on delivering a piece of code. This tactic is more important than it may seem because the general user still needs a great deal of education about how AJAX applications behave. The designers at Yahoo want to push a stable, consistent behavior for the AJAX widgets, and their very complete documentation encourages this.