This page is from http://www.musingsfrommars.org/2006/03/ajax-dhtml-library-scorecard.html. However, it did not play well with IE7.

Ajax/DHTML Libraries (42 Libraries)
E
AjaxFace (VertexLogic)

AjaxFace is a framework for building rich WEB UI using client-side rendering architecture. The main component of the framework is a rendering-engine written in JavaScript. Developers use a high level API for constructing UI in JavaScript.

Evaluation copy available for download by registering. No documentation available on the website. Application scheduled for production in March 2006. Demos say they work only in IE 6.0 and that Firefox support is in development, "Please check back after 1/15/2006." However, when I turned on Safari's "spoof" mode to IE 6.0, the widgets loaded, though most were semi-broken. The data load function, in particular, did not work at all. (Note from 6/5/06: The individual component demos still have the same message originally reported in March.) AjaxFace is a commercial product that uses a proprietary server component.

NA
AjaxFaces

The CyberXP.NET AjaxFaces offers an easy, general and complete integration solution for JavaServer Faces and Ajax. This solution makes any JavaServer Faces UI component Ajaxable: either trigger Ajax process or change user interface using the output from Ajax process.

No online demos... Downloadable demo works with Tomcat. Website does not address browser compatibility.

C
AjaxTags

The AJAX Tag Library is a set of JSP tags that simplify the use of Asynchronous JavaScript and XML (AJAX) technology in JavaServer Pages.

This open-source project has a set of online form-based and dhtml demos, some of which worked for me in Safari. However, their home page statement says you need either IE 5.x or Firefox 1.x. Good documentation is available. There is a port of AjaxTags for PHP as well, which is demoed here: PHPAjaxTags demo.

NA
Apple's Dashboard Widgets

Based on Web Kit technologies, Dashboard Widgets are created using a mix of HTML, JavaScript, and CSS. This extends the ability to develop Widgets to a very wide audience. If you know how to create a web page, then you know how to create a capable Widget.

It's interesting that 2 months after an Adaptive Path essay coined the term "Ajax," Apple released Mac OS X 10.4 "Tiger", with its amazing and powerful dashboard Widgets system. Within a couple of months, there were over 1,000 widgets available on the web, and these little babies were capable of completely replacing (almost all for free!) a number of system utilities, menubar items, and whole applications on the Mac. I'm tempted to think that awareness of Apple's widgets helped promote awareness of, and interest in, what could be accomplished with rich Ajax/DHTML toolkits. After all, widgets are simply little DHTML/Ajax programs running in a special layer of Mac OS X called the Dashboard. (See my earlier article on widget development.) They use exactly the same technologies as all of the DHTML/Ajax libraries, and in fact you can run them inside of Safari outside of the Dashboard. However, they also utilize a few extensions to CSS and Javascript of Apple's design, and some include Applescript, Cocoa resources, and other Mac OS X-platform-dependent functionality. Because of this, they do not work on other platforms.

B
Backbase

Our goal is to make development of rich AJAX applications fast and easy for you. We want to provide you with AJAX development software that is fully based on open Internet standards, doesn't require plug-ins and operates on all browsers, offers over 50 out-of-the-box AJAX widgets (including source code), and runs on any platform (e.g. J2EE, .NET, PHP, Coldfusion, or XML).

(Updated 5/3/06) Backbase has a lofty vision and promises to provide a comprehensive ajax/dhtml library with impressive gui controls, which will be free for noncommercial/noninstitutional use. Backbase eschews JavaScript on the client, instead introducing its own XML-based markup language, BXML. Backbase relies on an XML server to generate native JavaScript from the BXML/HTML pages it receives, tailored for each client. The Backbase server can be used with a variety of back-end server architectures, including J2EE, .NET, and LAMP. Although the Backbase home page still puts up a roadblock to Safari, Opera, and other DOM-compliant browsers that use neither an IE nor Gecko engine, Backbase this week released a public preview of its Backbase Explorer application for testing by Opera and Safari users. (Note! This pre-release of Backbase works only in the WebKit nightly build, not in the Safari that Apple includes with Mac OS X 10.4 (Tiger). References to Safari in this description are to the WebKit nightly.)

In my tests, I found the Explorer to be very slow, especially in Opera. (Backbase acknowledges slow JavaScript on Opera to be a known problem.) However, the vast majority of Backbase's rich GUI widgets worked in both Safari and Opera on my test G5 PowerMac. The experience wasn't 100%, however: With both Safari and Opera, Backbase's drag-and-drop Tree Widget failed to function as expected. In addition, the Backbase datagrid widget failed (rather horribly) in Opera. Nevertheless, this is a step in the right direction for Backbase. Although this version of Backbase is not officially released, and though it's still got some work to be fully functional in Safari and Opera, and though it still doesn't support Apple's official Tiger version of Safari, I'm upgrading Backbase's score to a B from a C. Now all they have to do is finish eliminating those caveats, and they'll be at an "A!"

C+
BlueShoes JavaScript

BlueShoes is a comprehensive application framework and content management system written in PHP. BlueShoes includes a comprehensive set of rich JavaScript GUI controls, which are available separately.

Each GUI control has its own separate documentation and demos. Some of the Blue Shoes controls are very high quality, but many do not work in Safari. Most of the controls have a statement of browser support, and most have checkmarks indicating they have been tested and certified for IE, Firefox, and Opera. Safari is listed, but no testing has been done. Excellent documentation is available.

B+
DHTML Goodies

A library of nice looking DHTML scripts for your website.

This website, developed and managed by Norwegian programmer Alf Magne Kalleland, is chock full of useful and interesting DHTML widgets, including a large number that use Ajax methods to update themselves or the page's content. The site is organized by type of widget (Menu scripts, Window scripts, Tree widgets, Form widgets, Drag and drop, Tooltips, Ajax, etc.), and the home page shows a running calendar of the latest widget added to the site. Each widget is demonstrated--most have 2 or 3 different demo pages--and includes a statement of browser support.

Nearly every script I tried was certified for Firefox, IE 5.5, and Opera 8, but even though Safari was rarely mentioned I didn't encounter a single script that didn't work beautifully in Safari 2.0. The only downside to this library is that it each widget is really its own "book" and apparently has no reuse capability. There's no evidence of a common library that all the scripts use, for example. So while this is indeed a "library," it's low-level filing system appears to lack some needed organization. In addition, there's no docuementation outside of whats in the scripts. Still, if you're looking for free ideas, or just need one specific widget, you're sure to find a good book here.

A
Dojo Toolkit

Dojo is the Open Source JavaScript toolkit that helps you build serious applications in less time. It fills in the gaps where JavaScript and browsers don't go quite far enough, and gives you powerful, portable, lightweight, and tested tools for constructing dynamic interfaces. Dojo lets you prototype interactive widgets quickly, animate transitions, and build Ajax requests with the most powerful and easiest to use abstractions available.

Dojo is one of the most mature and most popular dhtml/ajax toolkit now available. It was initiated by and is still closely affiliated with Jot.com, which uses Dojo as the Ajax/DHTML engine of its powerful wiki system, Jotspot. (Updated 6/5/06) Dojo clearly states its broad browser support to include Safari 2.0+, Opera 8.5+, IE 5.5+, Firefox/Mozilla 1.0+, and Konqueror 3.5+. A new home page now provides a fully Dojo-powered, Ajax interface to all of Dojo's many widgets and to its Ajax and DHTML features. Dojo's documentation has also improved, as the company's new wiki provides a growing set of API documentation and tutorials.

B+
DomAPI

DomAPI is an application-centric, enterprise-ready development environment, targeted at version 5.0 or better browsers running on Windows, MacOS and Linux.

Extremely powerful and comprehensive package of widgets and functions for complete web 2.0 applications. Includes full browser compatibility chart (though Opera is not listed).

E
e-Business Applications

EBA Ajax software components bring the power of desktop-like user interfaces right to the web browser.

This company specializes in selling specific Ajax-enabled DHTML components such as spreadsheets. Unfortunately, at the moment nothing works outside of IE. Firefox support is "coming soon" (perhaps by April 2006), but no mention of support for Safari or Opera is mentioned.

A
Echo 2

Echo2 is the next-generation of the Echo Web Framework, a platform for developing web-based applications that approach the capabilities of rich clients. Echo2 applications are developed using only server-side Java code. No JavaScript, HTML, or XML development is required.

Echo 2 uses a java-based server architecture, plugged into a servlet engine, to transform HTTP requests into client-side Javascript that run in the user's web browser. The FAQ's claim that you don't need to know JavaScript to build an Echo application, and if you use the company's Echo Studio, an Eclipse plugin, you probably don't as long as you don't want to do anything Echo Studio can't do. The library itself is free and open source, but the IDE is available as a 30-day trial. For the life of me, I couldn't find anywhere on the site any information on how much a full license for Echo Studio costs. The Echo 2 website has a large number of sample applications and includes an interactive tool for building Echo widgets that presumably is similar to the kind of work you would do in Echo 2. Also available is a tutorial and a full javadoc (in HTML) that fully documents the java API.
Echo 2 has this statement about browser support: "Echo2 supports browsers that support the Level 2 DOM and CSS specifications and provide XMLHttpRequest support." They specifically mention Firefox/Mozilla, and also note that they support IE "because of its widespread use." I encountered no difficulties navigating the Echo 2 demos in Firefox 1.5, Opera 9, and Safari 2. Echo 2 has a complete set of DHTML and Ajax components that feel very robust and are thoughtfully designed, including an accordian widget, window widget, tabbed panes, and split panes. DHTML effects are limited to a few transition effects. I also downloaded the Echo Studio IDE, and it worked just fine in Eclipse on Mac OS X Tiger. If you're a Java developer who doesn't know (or want to know) JavaScript, HTML, CSS, and the rest, and who is used to working in a full-featured visual IDE, Echo 2 may be a good choice. Certainly, I saw no browser or platform-compatibility issues.

A-
Google Web Toolkit (GWT)

Google Web Toolkit (GWT) is a Java software development framework that makes writing AJAX applications like Google Maps and Gmail easy for developers who don't speak browser quirks as a second language.

The GWT has attracted the kind of attention you would expect for an Ajax toolkit developed by the company that released what many consider the first major Ajax applications: Gmail and Google Maps. If you're a java developer, it's especially appealing since you don't have to know JavaScript or other server languages, just java. GWT comes with a command-line tool for compiling your files into a project, and that project can also be built to be Eclipse-aware. To avoid what Google refers to as "browser quirks", the GWT is extremely spartan in the DHTML department, having only the kind of widgets that have been stable for many years: DHTML menus, trees, buttons, and tabs. It steers clear of effects completely, and in general reflects the developers' disdain for JavaScript and the state of compatibility in today's web browsers. Here's Google's statement about browser compatibility with the GWT: "If you stick to built-in widgets and composites, your applications will work similarly on the most recent versions of Internet Explorer, Firefox, and Safari. (Opera, too, most of the time.) DHTML user interfaces are remarkably quirky, though, so make sure to test your applications thoroughly on every browser." Indeed, I found nothing that didn't work fine in my test browsers.
Google Web Toolkit provides the fundamentals for Ajax application development, and if you favor the spartan appearance and functionality found in Google Calendar and Gmail, and if you are a java programmer who doesn't require anything more than Eclipse for development, GWT is certainly worth a try, and you can be certain you won't be building incompatible Ajax web apps. (Note: I've subtracted 1/2 point for GWT because it's so bare-bones in the DHTML department. One of the reasons it's able to be cross-browser compatible is that it eschews DHTML to a great extent.)

B+
ICEfaces

ICEfaces is an Ajax application framework that enables J2EE application developers to easily create and deploy thin-client rich web applications in pure Java.

This is another impressive framework for building rich web 2.0 interfaces using client-side javascript and ajax technologies, but using a java server framework to manage the view. ICEfaces is available in a free "Community Edition" that has most of the product's full functionality, and a commercial "Enterprise Edition" that adds features of interest to large deployments. The ICEfaces website has a comprehensive demo of their user interface components, as well as three complete applications built with the product. Each of the demos is documented and provides a "peek" at the source code.

Update 6/25/06. ICEfaces was released as a production application in May 2006, so I decided to take a second look at the product. This time around, I tested all of the online demos in all of the modern browsers for Mac OS X, since previously the grade was based on IceSoft's statement that Opera was not supported, while Safari, Firefox, and IE were.

As it turns out, ICEfaces doesn't work 100% in any of the three browsers, though it supports all of them about equally. The failures are relatively minor and can generally be worked around by an end-user. Of the 22 interface demos, I noted 4 problems in Opera, 3 in Firefox, and 2 in Safari. (This document shows the specific problems I found.) In WebKit, the Safari nightly edition, ICEfaces worked perfectly. Given the relatively broad--but still incomplete--support for these browsers, I'm giving ICEfaces a "+" for effort. Clearly, they need to do a little more testing of ICEfaces on different platforms.

B
Isomorphic

Isomorphic Software is the leading DHTML/AJAX technology provider for rich-client, zero-install web applications.

Software download is available for evaluation purposes to registered developers. Isomorphic's "Smart Client" is demoed in several very powerful applications, which appear to be particularly strong in managing tabular and other business data. According to the documentation, the Smart Client is a presentation tier component only, which can integrate with any existing web app architecture.

NA
JackBe

JackBe's NQ Suite is complete set of development tools that allows rapid development of sophisticated, rich-client applications using AJAX.

The site is a marketing tool only. It provides no online demos (except for 2 screencasts), no documentation, and no downloads. The site says that JackBe apps are compatible with IE, Netscape, Firefox, and Safari. The suite includes a web-based tool for building JackBe GUI's, but the site provides no opportunity for prospective buyers to test it.

A
Javascript/Ajax Toolbox

This site is intended to be a repository of code and reusable libraries which address common needs that many web developers encounter... [The AjaxToolbox] simplifies and extends the capabilities of the XMLHttpRequest object and allows you to immediately jump into working on the ideas you have

This toolkit is the handiwork of veteran Javascripter Matt Kruse, who's put the library together over a number of years so that it now covers most of the function a developer would need to build dynamic, cross-browser websites. The library includes some dhtml widgets such as trees and draggable layers, as well as a wealth of form controls. His new AjaxToolkit is a focused set of Ajax tools. The site has excellent demos and documentation for each library.

A
Jitsu

Jitsu contains an integrated set of tools to enable developers to build and deploy sophisticated user interfaces for web applications. These include an Xml markup language, page compiler, data binding engine, JavaScript runtime, control library, runtime inspector, animation engine, cross-platform library, Ajax, and back button support. Jitsu apps use DHTML and run in most modern web browsers.

Jitsu is an open-source Ajax toolkit and framework that's been in development for a couple of years. Unlike most, it uses XML as the presentation language, which is compiled on the server and sent to the client, along with a Jitsu runtime JavaScript library, as HTML and Javascript. It works in all modern browsers and has the usual full range of user interface controls and widgets for web interfaces. The site has plenty of documentation, a free download (it's an .exe), and a slew of demos available. It uses the .NET framework, so must run either on a .NET server or a Mono server (Unix port of .NET). The product has a planned release date for March 2007.

A
jQuery

jQuery is a new type of Javascript library. It is not a huge, bloated, framework promising the best in AJAX - nor is just a set of needlessly complex enhancements - jQuery is designed to change the way that you write Javascript.

This toolkit is indeed tiny, with a full library compressed to only about 10kb. It includes a set of basic DHTML effects and Ajax functions, but lacks full-fledged widgets and more advanced DHTML elements such as drag/drop, navigation controls, sortable objects, etc. The author adds new widgets with some regularity (e.g., a "greybox" function as a version of the popular "lightbox" effect), so it's likely these will be fleshed out with time. The more significant contribution of jQuery is the ability to chain effects together, and the simple syntax (inspired by prototype) it introduces. Although jQuery can be used on its own, the author also has a page devoted to how it can be used in conjunction with Prototype.

A-
jsLINB

jsLINB (Lazy INternet and Browser) is designed to allow developers coding in a more targetable, clearly, and efficiently way. jsLINB is platform-independent and language-independent, which is C/S, B/S, RIA and Web2.0 compatible.

This toolkit appears to be the product of a Chinese developer, and the English documentation is shaky in spots. Oddly, the toolkit home page uses jQuery and moo.js rather than jsLINB itself for the DHTML bits. Like several other toolkits, the documentation itself is a demo of the JavaScript widgets and DHTML effects. The javascript navigation for the documentation loaded unreliably or not at all in Safari and Firefox. The developer states that the jsLINB library has been tested and certified in IE6/IE7, Netscape 8 Firefox 1.5, Opera9, and Safari 2.0 (limited). Indeed, I had no trouble running any of the widgets and demos except for the Windows widget, which didn't work in Safari (though this may have been a temporary glitch). The developer doesn't make the library available for anonymous download, but will provide the URL on request. Overall, my impression is that jsLINB is a work-in-progress by a single developer, who has developed some striking and unique approaches to JavaScript-enabled web interfaces using a rigorous object-oriented framework.

B-
Kabuki (Zimbra Ajax Toolkit)

Zimbra is an open source server and client technology for next-generation enterprise messaging and collaboration. Zimbra developed their product with a JavaScript library they call Kabuki, which until recently was intended to be part of the Open Ajax Initiative. Kabuki is now available as a separate download from the Zimbra website. It is an object-oriented JavaScript runtime library with a standard set of widgets, an event framework, and communication tools.

The Ajax library for Zimbra's Collaboration Suite is available for download as open source, including its dhtml widgets. However, the download is designed to run on a java server and can't be used as static HTML files. Further, there are no online demos except for the platform version of Zimbra Collaboration Suite, which doesn't work in Safari or latest Webkit.

D
Microsoft Atlas

ASP.NET "Atlas" makes it easy to build rich, interactive web-based applications for personalized web experiences. It allows you to create rich web applications that also harness the power of the server and browser. This brings a richer, user experience to web applications without the traditional need to post-back to the server.

In early March 2006, when this scorecard began, I had trouble understanding what was available for Atlas. There were no working demos, and the only downloads appeared to be available for users of the Windows-only Visual Studio. Clearly, this is a Windows product, intended for use on Windows servers, and primarily for Windows clients. The original grade--E--was consistent with the company's traditional strategy of locking non-IE browsers out of web applications developed with Microsoft developer tools. Today, they have a new home page for Atlas, as well as developer documentation, downloadable sample applications, and online demos. I'll be back with a grade for this toolset after completing a re-evaluation, which I hope will be done by April 10, 2006.

Updated 4/16/06: Full article and test results here.

Updated 6/27/06: After a couple of refreshes to the toolkit, I returned to test Atlas again in late June. The results were not good. Although Microsoft is claiming they now support Safari, it's not true. Of 13 controls now available, only 4 work as they're supposed to in Safari. Whereas 3 controls worked in Opera in April, none work in Opera now. This is actually moving backwards from standards compliance, folks, not forward. With Firefox, the same control that didn't work in April still doesn't work. It also doesn't work in IE 6.0, as it turns out. I'll be publishing details in a forthcoming article summarizing the results all the newest libraries added and changed since March.

A
MochiKit

MochiKit is a highly documented and well tested suite of JavaScript libraries that will help you get things done, fast. MochiKit makes JavaScript suck less.

Updated 6/18/06. When reviewing Mochikit 3 months ago, the DHTML functionality provided was pretty weak, which is fine for some kinds of apps. The MochiKit team also had a relatively few number of demos available online. What a difference 3 months makes in AjaxLand, eh? Now, MochiKit has incorporated the Script.aculo.us effects library, has a full drag-and-drop suite, and has added a number of innovative demos to their site. Everything I tried passed with flying colors, and I noted that the team has this statement on browser compatibility: "Our current test platforms include all of the modern and popular browsers: Safari 2.0.2, Firefox 1.0.7, Firefox 1.5b2, Internet Explorer 6, and Opera 8.5. Other JavaScript platforms should work if they're standards compliant."

On top of its powerful Ajax and DHTML libraries, MochiKit provides some unique and extremely useful tools for developers--an interactive JavaScript interpreter, a logging pane (either floating or embedded) for displaying errors and debugging, a terrific code-display module that includes syntax highlighting (!), and "hundreds" of tests for--among other things--reporting errors in MochiKit back to the development team, led by Bob Ippolito. As Dan Webb noted in a recent article in SitePoint, MochiKit appears to be an extremely well designed JavaScript library that draws from both Objective C and Python for its inspiration, syntax, and structure. And if you're looking for top-notch documentation, MochiKit will not disappoint. It's very detailed and well organized. I noticed also that the TurboGears Ajax application development framework is built with MochiKit as the JavaScript backbone, and TurboGears itself looks very inviting, especially if you are a Python programmer.

A
Moo.fx

moo.fx is a superlightweight, ultratiny, megasmall javascript effects library, written with prototype.js.

This is a basic effects library built on prototype.js. It's distinguished both by its very small file size (only 3kb) and by a very cool accordian widget that's built with moo.fx and demoed on the home page. For another 1kb, you can have the moo.ajax library for basic ajax functionality, and another 6kb gets you an effects "expansion pack." (Go for the expansion pack, by all means!)

C
Morfik WebOS AppsBuilder

Morfik WebOS AppsBuilder delivers the next level in the evolution of web-based applications. Unlike existing software development tools, the WebOS AppsBuilder is designed to create truly interactive web applications, not merely text files with tags. WebOS AppsBuilder brings extreme simplicity to the design of sophisticated AJAX applications without compromising their functionality. You don't need to write any HTML, XHTML, XML, JavaScript or CSS. It has never been easier to create highly interactive web sites and applications - and you don't even have to learn a new language or new technologies to do it!

Morfik, like Backbase and Tibco GI, is a commercial product that relies on a sophisticated IDE graphical user interface application builder. The GUI not only allows the developer to build the interface and functionality, it also generates all of the HTML and JavaScript files you need for deployment, which doesn't otherwise require any special server software. Unfortunately, the Morfik website still doesn't work at all in Safari or WebKit as of this writing (9/27/06), and I have written to the company to let them know. It's a bit embarrassing that the website works quite well when I spoof Safari as IE 6.0, suggesting that the lack of support is only skin-deep and could be fixed easily if the company wanted to. The Morfiks GUI builder runs on Windows and Linux, and their current browser statement is that they support the "big three": IE, Firefox, and Opera. (Of course, Safari has a much larger share of the overall browser market than Opera does, so I guess they mean the "big three" on Windows.) The Morfik website itself is a demo of the applications you can build with their tool. They have added a statement indicating that support for Safari will come after final release of the AppsBuilder product, which is planned to extend platform support from Windows and Linux to BSD and Mac OS X.

Although Morfik is supposed to work on Opera on all platforms, it doesn't fully work on Mac OS X. I could only navigate to the home page, since the two left-hand page tabs were nonfunctional. Oddly, when I spoofed the site with Safari, I had no trouble accessing those tabs... or any other content I was trying to access. I likewise had no trouble navigating the site and demos in Firefox.

C+
Neuromancer

Neuromancer is a set of javascript libraries that provide a common interface between browsers and allow for javascript remoting.

This is an open source library with nightly builds that was begun in 2004. The library provides APIs for Ajax functions as well as "eye candy"--in other words, DHTML effects. The site has very good documentation and a set of sample applications built with Neuromancer. Unfortunately, it provides no systematic demos of all the Ajax/DHTML functions, and the demo applications don't cover all of them. Further, the demo apps didn't work consistently, or at all, in some of the test browsers. For example, the OS emulator partially worked in Opera, but the window wasn't movable; the window wasn't resizable in any of the browsers, though it's not clear that it should have been. The first demo, the online presentation package, crashed Opera without trying too hard, and it was impossible to add text to the bullet lists in Safari and Firefox. The photo slideshow worked fine in Safari and Firefox, but failed to load images in Opera. My impression is that some of these applications may not be using the most recent version of Neurmancer, and that they are, in fact, old demos rather than ones prepared to show off Neuromancer. Therefore, it's hard to rate the library objectively. I did download the latest version and ran the test page, but the server-side installation requires Cold Fusion in order to test. In fact, it appears that Neuromancer has been used thus far primarily with Cold Fusion as the back end app server. All three browsers passed the tests that don't require a server, except Safari failed the cookie tests (even though I set its permissions to "accept all"). The rating given here reflects my inclination to give the Neuromancer developers the benefit of the doubt for functions I couldn't test.

A
Prototype

Prototype is a JavaScript framework that aims to ease development of dynamic web applications. Featuring a unique, easy-to-use toolkit for class-driven development and the nicest Ajax library around, Prototype is quickly becoming the codebase of choice for web application developers everywhere.

Oddly enough, this popular and widely used library offers no official documentation outside of the script itself, and no demos. Its fame as a comprehensive dhtml/ajax library rests primarily on the fact that it provides the foundation for a number of other libraries on this list. There is some documentation available, but, like the one included here, it has been developed by contributors outside of the project.

C
qooxdoo

qooxdoo is an advanced open-source javascript based toolkit. qooxdoo continues where simple HTML is not enough anymore. This way qooxdoo can help you to get your rich web application interface done - easier than ever before.

This is primarily a framework for dhtml interfaces... A generic Ajax implementation was just released in February 2006. The online demos do not work in Safari 2.0, and the developers state that they do no testing for Safari. Most of the tests work fine in Firefox, but it's clear from the look/feel applied to the GUI components that this is intended for use on Windows systems only and that other platforms are not being contemplated.

D
Rialto

Rialto (Rich Internet Application Toolkit) is ajax-based cross browser javascript widgets library. Because it is technology agnostic it can be encapsulated in JSP, JSF, .Net, Python or PHP graphic components.

Rialto is intended for Intranets, since it adheres strictly to the single-page concept of Ajax apps and takes quite awhile to load. Although their home page indicates that Safari is supported, their demos are mostly broken in Safari 2.0. They work fine in Firefox. Rialto provides a set of GUI widgets and a framework for application development, with code for use in PHP, JSF, Python, and .NET

B
Rico

An open-source JavaScript library for creating rich internet applications. Rico provides full Ajax support, drag and drop management and a cinematic effects library.

Rico is another DHTML/Ajax toolkit based on Prototype. It focuses on an accordian widget, a data grid widget, some effects, and an Ajax engine. It was originally financed by Sabre Airlines, which retains rights to widgets developed by Rico. All demos but those that use drag/drop work in Safari.

Updated 6/18/06. The original grade of A- was giving the Rico team the benefit of the doubt on their support for Safari. However, after 3 months, two of the drag and drop demos still do not work in Safari, and in general progress on this toolkit has been agonizingly slow. Rico's best feature is the accordian widget, but if that's your main interest, you can use Moo.fx for a lot less disk space. In addition to weakness in Safari support, Rico also has a couple of bugs in Opera 9. The first is a simple display anomaly in the first motion effects demo, but more seriously, the Ajax Weather widget demo fails in Opera. Also odd in Opera is Rico's DataGrid demo, which shows the scrollbar below the table rather than within it (as usual).

A sneak preview of Rico build 31 is available for download, though it represents only a small part of Rico--namely, it serves to show some new "skins" for the accordian widget and presents four demos of the widget.

A
S@rdalya

s@rdalya, is a cross-browser interface that aims to make dynamic HTML programming easy and fun. It is a cross-browser compatible system which is designed to work in all DOM-supporting browsers.

Though the developer doesn't test on a Mac, I encountered no problems viewing all of the many DHTML samples he provides. Sardalya includes Ajax functions as well as a comprehensive DOM-based DHTML library. It is free for noncommercial use and almost free for commercial use.

A
Script.aculo.us

Building upon the wonderful Prototype JavaScript library, script.aculo.us provides you with easy-to-use, compatible and, ultimately, totally cool JavaScript libraries to make your web sites and web applications fly, Web 2.0 style.

Script.aculo.us is one of the best-documented DHTML/Ajax toolkits available, with numerous working demos and code explanations on the website. Like prototype.js, on which script.aculo.us is built, this library was originally developed for, and is still a part of, the Ruby on Rails application platform.

A
Spry Framework for Ajax

The Spry framework for Ajax is a JavaScript library for web designers that provides functionality that allows designers to build pages that provide a richer experience for their users. It is designed to bring Ajax to the web design community who can benefit from Ajax, but are not well served by other frameworks.

Spry is one of the most unusual frameworks developed to date. It uses Adobe's Cold Fusion as a model for the page syntax, but unlike Cold Fusion, Spry uses its own namespace to declare XHTML tags within the body of the HTML itself. The Spry framework JavaScript files parse the Spry tags and run the Ajax and DHTML effects calls. Also unusual, but hardly unique, is Adobe's strict reliance on XML as the data source. Through XML and the client-side command tags, Spry is able to achieve remarkable results in dealing with database content and developing dynamic, Ajax-driven web pages. Spry was only pre-released in May 2006 and is still in the early stages of development, but all the demos I've tried so far have worked equally well in all browsers on both Mac OS X and Windows.

The Spry framework now has a rich set of demos, including a full suite of effects in the Scrip.aculo.us style, as well as decent documentation, some excellent tutorials, and some additional demo-like "samples." Spry has its own widget framework, which is likewise explained in detail, including a full writeup on the Spry Accordion widget. All in all, this is a very impressive new choice for Web 2.0 developers who want to build rich Ajax-enabled interfaces that work identically across browsers and platforms.

A-
Tacos

The Tacos library project provides components and ajax behaviour for the Tapestry java web application framework. Most of the functionality is based on the exceptional dojo javascript library.

Tacos has no specific browser compatibility statement on their website; however, the demos seemed to work in both Safari and Firefox. The primary limiting factor for Tacos is that it is restricted for use on the Jakarta Tapestry java server framework.

B+
ThinkCAP JX

ThinkCAP JX eliminates the complexities of building highly visual and interactive web applications. ThinkCAP's innovative 3-tier event model allows developers to use the power of the server to build interactivity either through Java or JavaScript.

Includes a powerful complete application as a demo. Uses various open source libraries, including Prototype and Rico for the javascript bits.

E
TIBCO General Interface

TIBCO General Interface� is a framework that enables you to quickly and easily develop and deploy rich Internet applications (RIAs) using AJAX�he asynchronous JavaScript and XML capabilities already in Web browsers.

Tibco requires developers to register, but then use of the client-side toolkit is free (as stipulated). However, Tibco's download is a Windows .exe file, and the company's browser compatibility statement still claims that IE is on 97% of corporate and end-user desktops. Support for Firefox is "forthcoming," and support for Safari is not mentioned.

Update 6/23/06: About a month ago (mid-May), Tibco announced plans to integrate their toolkit with Dojo and Yahoo! User Interface, saying "With our open architecture, we�e addressing the needs of developers who want to include open source and commercial AJAX components in their applications." So I added a re-review of Tibco to the punchlist, hoping to get some better news this time around and raise their grade. Unfortunately, it turns out that Tibco's marketing language is highly exaggerated. To say that Tibco has an "open architecture" is misleading in a style worthy of "Microsoft's greatest hits" when you consider that this is one of the very few Ajax libraries that can only be used on a Windows platform.

Anyone who has worked with JavaScript and modern browsers know that you have to tie yourself pretty tightly to Microsoft's Internet Explorer platform to have a hard time making your scripts work with Firefox, Opera, and Safari. And I don't think basing your code on IE's proprietary extensions can be called "open." The best Tibco has been able to say to date is that partial Firefox support will be coming in "late Summer." This means it's taken them 3 months simply to get to the point of providing a timetable, and it's going to be another 2-3 months before they're ready to let developers try the code--and then, only Windows developers.

Tibco makes a point of saying that their applications require no special server or client components. But if you read the installation instructions, it's clear that you can't build or deploy a Tibco application without using their GUI Tibco General Interface software, which is a visual builder tool like Microsoft's Visual Studio. It writes out proprietary format files that contain the XML, XSL, and JavaScript that will be transformed into your Ajax application when served through HTTP.

It's clear from reading their developer forum topic on this subject that they have no intention of widening support beyond Firefox, which simply isn't adequate unless you're interested only in covering Windows users. To show their progress toward Firefox, they've posted a video of Tibco working in that browser, but unfortunately--like everything else they make available--it's in a video format that's very difficult to view on a Macintosh. With all the other truly excellent JavaScript libraries available today for DOM scripting and Ajax, I can't imagine why anyone would even give a second look to Tibco's tool if they care about providing truly open, standards-based Web 2.0 applications. I'll keep an eye on Tibco, only because they do so much advertising it's hard not to. If things improve, I'll certainly document that here.

A-
TurboWidgets

TurboWidgets are JavaScript client-side controls that provide a rich user-interface experience for AJAX-style web applications. Built on top of the popular Dojo Toolkit, TurboWidgets are designed for ease-of-use and flexibility.

All of the examples worked in Safari; however, the company's TurboDBAdmin Web 2.0 database manager for php/mysql doesn't work in Safari. The widgets are free for noncommercial use.

A
TwinHelix

This is a portfolio of original, high-performance DHTML and JavaScript examples, designed to be as small as possible and fast.

TurboHelix provides a large library of powerful dhtml widgets, including widgets for ajax functions. It even includes support for Netscape 4! Each widget is documented with a working demo, and provides detailed browser compatibility info.

A
Wicket

Wicket is a Java web application framework that takes simplicity, separation of concerns and ease of development to a whole new level. Wicket pages can be mocked up, previewed and later revised using standard WYSIWYG HTML design tools. Dynamic content processing and form handling is all handled in Java code using a first-class component model backed by POJO data beans that can easily be persisted using your favourite technology.

Wicket is a comprehensive library and framework for building web 2.0-style applications using a java server. Includes some excellent and unique dhtml widgets.

B
X-Desktop

This project comprises a library for developing thin client application frontends using a browser. It helps developers creating application interfaces for inter/intra- and extranet applications.

This project appears dormant but is focused on providing a framework for a single-page DHTML/Ajax desktop.

A
Yahoo! User Interface Library

The Yahoo! User Interface Library is a set of utilities and controls, written in JavaScript, for building richly interactive web applications using techniques such as DOM scripting, HTML and AJAX. The UI Library Utilities facilitate the implementation of rich client-side features by enhancing and normalizing the developer's interface to important elements of the browser infrastructure (such as events, in-page HTTP requests and the DOM).

Yahoo also provides a Design Pattern Library for use in building rich web interfaces, and the company sets a new standard for best practices in cross-browser frameworks by publishing its Graded Browser Support, which has an Appendix table showing grades for the various browsers. Yahoo began developing their Javascript library in 2005 and released it as open source under a BSD license in February 2006.

Documentation: Each component has individual documentation and examples. For example, here are links to the docs and demo for the drag/drop module:
Documentation
Demos
A
Zapatec Ajax Suite

Jump start your AJAX deployment by using the Zapatec suite which includes six widgets, three modules and a library. Don't be intimidated by the Suite's breadth, its components are built with ease of use in mind, and you can start with one or two and migrate to using the full suite as your needs and familiarity increase.

The Zapatec Suite is a commercial toolkit for building Ajax-enabled, rich-interface web applications. It has modules and libraries that provide a wide range of DHTML effects and widgets. The Zapatec website is rich with examples and demos, and an evaluation copy of the suite can be downloaded, along with documentation. Some of the widgets come with web-based "wizards" that allow you to develop JavaScript code without knowing JavaScript. A "lite" license is available for free, which requires the developer to link to Zapatec for each module used. The commercial licenses start at $399 for a single-server license.

This is one of the most impressive commercial Ajax/DHTML suites I've encountered since starting this list. I downloaded the "lite" Zapatec suite and went through all of the demos with Firefox, Opera, and Safari on Mac OS X. I'm pleased to report that everything worked, and in fact worked in almost exactly the same way in each browser. There were a few anomalies that I noted--for example, the custom visual effects are "flickery" in Firefox, and the background color for the modal windows appears opaque black in Safari and Opera rather than translucent grey. There were a few others, but frankly the suite is so strong that I started noting every tiny discrepancy simply because there was so little deviation in appearance and functionality.

Particularly impressive are Zapatec's powerful and flexible menu, calendar, tab, and table grid widgets, as well as the suite's visual effects. To date, I've found the Script.aculo.us effects to be about the best out there in terms of variety and flexibility. But Zapatec's go a step further. Like Script.aculo.us, Zapatec offers combo effects, but the effects are much smoother, and it's much easier to set up and modify them. The table grid widget is likewise the best I've encountered. Not only can you do the standard column sorting, you can also filter the HTML table on any of the various column fields it contains. You'll have to see this to believe me, but it's truly remarkable. One of the grid demos shows how Zapatec can even take Yahoo search results and set them up as a grid on the fly, allowing you to sort on modification date, URL, title, etc. Simply amazing.

All this power would be for naught if the company had built it on lousy, proprietary, and difficult to maintain JavaScript. But I'm also pleased to report that their DHTML implementations are pure DOM scripting--Unobtrusive JavaScript in the very best sense. Behind their menus, tabs, table grids, etc. are simply HTML constructs with DOM ID's--Unordered lists, HTML tables, and so on. All of the JavaScript is in the header, where it belongs. One additional advantage that helps in implementing the library quickly is that each set of functions is associated with a discrete combination of JavaScript files that have little if any overlap. Aside from a utility (util.js) file that's common to all, you add to your application only the needed components, and those are clearly documented.

Which brings me to the final strength of this package--Documentation. Whereas Dojo has some terrific widgets, and even some you won't find in Zapatec (yet... its scope is quickly being expanded), you also can't find documentation on the Dojo widgets. The Zapatec developers have meticulously documented each and every function, widget, and demo they've provided, and it's all presented in a clean, consistent manner with convenient print versions available as well. If you investigate, I do recommend downloading the full suite. In one case, I found a couple of drag-and-drop demos that aren't on the website or in the demo index file, but which filled in a functionality it seemed to lack: Namely, sortable, draggable lists. Those are there, hidden in the drag/drop demo folder.

D+
ZK

ZK is an open-source Ajax Web framework that enables rich UI for Web applications with no JavaScript and little programming. With event-driven feature-rich components, developing becomes as simple as programming desktops. With a markup language, designing becomes as simple as authoring HTML.

ZK uses XUL and XHTML components, together with its own scripting language, XUML, to build rich interface Ajax applications. Your web pages are served up by any of a number of java servlet engines (including Tomcat and JBoss), and the XUML code is transformed into client-side javascript on the fly. The ZK website has a tree-based list showing all of its interface elements. When I first visited in April 2006, viewing this page generated an "unsupported browser" message in Safari 2.0.

Update 6/23/06: ZK's support for Safari 2.0 didn't improve over the last 2 months, but it does now support the WebKit nightly to a large extent. Although support for WebKit doesn't substitute for support for Safari 2.0 (the latest supported browser), I'm giving the kit a "+" for it. Unfortunately, ZK also fails completely in Opera 9, on both Windows and Mac OS X. (I've made a screenshot of the javascript error message in Opera for future reference.) On the Mac, Firefox was supported to about the same extent as WebKit: The sliders didn't work quite right (though better on Windows), and the right-click menus didn't work at all. Even in IE6 on Windows, this library had some quirks: The tab boxes drew themselves painfully slowly--the only browser that exhibited this behavior.

ZK does have a couple of unique and worthy features. The two I really liked were the dynamic table demo, where data is pulled from the server as you scroll down a long set of data (sort of like the Google Maps functionality). And also this is the first attempt I've seen to demo drag-and-drop for tables where the user can move entire rows of multi-column data. All of the other demos of this kind show only single-column data.

Unfortunately, ZK has not reached the maturity level needed for cross-browser, cross-platform functionality, primarily because of insufficient testing by the development team. Here is their statement on browser support: "Theoretically, any modern browser supporting DOM and JavaScript could be used. However, due to compatibility issue, we don't know whether a browser is supported, until we test and make some adjustments. Currently, ZK has been tested on Internet Explorer 6+ and Firefox 1+."

DHTML-Only Libraries (15 Libraries)
Ajax-Only Libraries
This is a list of libraries that primarily assist with the pure Ajax functionality of a website. They either do not have any particular user interface components, or they rely on components from one of the vendors in the lists above. In general, Ajax itself does not pose cross-browser compatibility issues to the same extent as dynamic html, so though I reviewed each of these websites, I have not rated them. These are direct links to the home page of each website.
Other Related Projects


Updates:

3/07/06
- Upgraded Backbase to C after confirming it works in Firefox 1.5
- Added AHAH and DWR to list of Ajax-only libraries
3/09/06
- Added My-BIC (Easy Ajax for PHP) to list of Ajax-only libraries
3/11/06
- Moved Behaviour from Ajax/DHTML list to “Other Related Projects” list, since it’s really an add-on to prototype.js rather than a standalone library.
- Added jQuery to list of DHTML/Ajax libraries with a grade of “A”. This new library gets better all the time and is well worth a try!
3/14/06
- Added Matt Kruse’s Javascript Toolbox, which he launched in January. Also linked is a fully functional Ajax Toolbox. Combined, they form a new “A” grade Ajax/DHTML library.
3/28/06
- Added Alf Magne Kalleland’s DHTML Goodies website to the Ajax/DHTML list. The site opened up in September 2005.
4/4/06
- Removed grade for Microsoft Atlas, pending an evaluation. When the scorecard was prepared a month ago, little of Atlas was available for testing, and what there was was for Windows IE only. The original grade–E–was consistent with the company’s traditional strategy of locking non-IE browsers out of web applications developed with Microsoft developer tools. I hope to have an evaluation completed within a week.
4/16/06
- Added review and new grade for Microsoft’s Atlas DHTML/Ajax toolkit. See accompanying article, containing a full explanation and test results.
4/27/06
- Added ZK from Potix Corp. Not yet reviewed, ZK is an open source Ajax framework that builds dynamic HTML components without JavaScript, using XUL interface elements.
5/3/06
- Updated information for Backbase. Backbase released a public preview of a future version of the product, which has partial support for Safari and Opera.
6/4/06
- Added six new libraries that need to be reviewed and rated:
  • Google Toolkit
  • Zapatec
  • Uize
  • Echo 2
  • LINB, and
  • Neuromancer
In addition, I plan to revisit the scores for Atlas and Tibco General Interface, as a result of recent updates to those libraries. For now, this article has brief descriptions of and links to the new libraries, but no ratings yet.
6/5/06
- Reviewed Echo 2 with an “A” rating.
- Reviewed Google Web Toolkit with an “A-” rating.
- Updated information for Dojo and AjaxFace.
- Removed AOL’s “I Am Alpha” entry, since it’s now clear that it is an Ajax-enabled application, not a library for building Ajax applications.
6/18/06
- Reviewed Neuromancer with a “C+” rating.
- Reviewed jsLINB with an “A-” rating.
- Reviewed the latest build of MochiKit and raised its rating to “A”.
- Revisited the Rico library and lowered its rating to “B”.
6/22/06
- Reviewed Zapatec Ajax Suite with an “A” rating.

6/23/06
- Reviewed ZK, which gets a “D+” rating.
- Tibco General Interface revisited, rating of “E” sustained. 
6/24/06
- Reviewed UIZE JavaScript API, a DHTML library that gets an “A-” rating.
6/25/06
- Added newly released Ajax/DHTML toolkit Jitsu for review.
- Revisited ICEfaces framework and raised grade from “B” to “B+”
6/27/06
- Reviewed the latest version of Atlas, which has 4 new controls since April.  Support for Safari and Opera both declined, despite Microsoft’s statement to the contrary for Safari.  Grade remains a “D”.
6/29/06
- Published followup article summarizing the Ajax toolkits added since March as well as those revisited. The summaries of each library presented there are also included in the main lists in this article.
7/13/06
- Added two new libraries that need to be reviewed and rated:
  • Spry Framework for Ajax, and
  • Morfik WebOS AppBuilder
For now, this article has brief descriptions of and links to these four libraries, but no ratings yet. Also added XAP (Extensible Ajax Platform) and CFAjax to the Ajax-only list.
9/27/06
- Reviewed Spry Framework for Ajax, with an A rating.
- Reviewed Jitsu, also with an A.
- Reviewed Morfik WebOS AppBuilder, which gets a C.
- Added UniAjax to the “Other” toolkits list.