AJAX resources

After looking around on the web for AJAX related materials, I left behind a trail of bread crumbs. Zimbra has a browser-based e-mail client which rivals Microsoft Outlook; and the toolkit is available, free for all.

AJAX -- Asynchronous JavaScript and XML -- is cool. Microsoft is unleashing their Atlas project these days, and it provides cross-browser, cross-platform extensions to JavaScript, including name spaces (i.e. packages), inheritance and abstract methods.

Zimbra offers an immensely rich web application running completely in the browser. It's amazing how much control a browser application can relinquish; even the right-click mouse event presented a context menu, just like in your regular desktop application. The fact that it is an open souce (MPL) product, allows us to oogle at the sources!

At the heart of Zimbra we find the Zimbra Ajax Development Toolkit (or AjaxTK), which provides UI functions, UI event handling, network communications, SOAP and XML stuff. In other words, everything you need to build a so-called Rich Client Application or Chubby client :-)

Then there's NextApp which provide a development environment based on Eclipse which goes further than Zimbra, giving the developer a higher level of abstraction. Writing NextApp applications apparently feels more like writing Swing applications than the traditional web application.

I also found Rico, which claims to be "an open source JavaScript library for creating rich Internet applications." Rico is more of a widget toolkit for building web applications, not neccesarily AJAX applications, although it does have a few AJAX libraries. The main focus is on widgets, drag-and-drop, animation, rounded corners, and so on, although there are HTML table widgets which can be backed by a back-end data store. Since it's all licensed under an Apache-2.0 license, you can pick the bits you want to use.

AjaxAnywhere is another little library worth looking at. They have a different take on AJAX in that they simply provide a JSP tag library indication which portions of your web page which are dynamic. AjaxAnywhere adds <span> tags, and replaces the span tag with the updated HTML, instead of rendering the entire page.

Another way of doing Ajax is by creating your own template language: Ajax Pages (think JavaScript Server Pages) and TrimPath JavaScript Templates both do this. Ajax Pages rips off JSP for its syntax, but uses JavaScript as the scripting language. TrimPath's solution uses its own syntax (Hello ${customer.firstName}.) and seems a bit cleaner.

Still, people aren't happy; this guy called Erik Arvidsson proposed EcmaScript Template Engine (ESTE) a few months back. However it hasn't quite taken off yet :-)

Well, all this shows that there is a lot of things happening on the Ajax scene. I don't think there's one prevailing winner here; other than maybe Microsoft's Atlas when it is released. One wonders if there will be any Atlas lookalikes that rip off its architecture. It does seem, however that dynamic HTML is here to stay as an environment for rich Internet applications.

#