Open Source AJAX toolkits
twofish writes "InfoWorld columnist Peter Wayner recently reviewed six
of the most popular "open source" Ajax toolkits. The article sets
out to see if they are enterprise ready in comparison to commercial products
such Backbase, JackBe, and Tibco's General Interface. The six open source projects
covered were selected because each has a high-profile in the developer community
and support of one or more stable organizations. "
The toolkits covered are:
Whilst the definition of open source is broad, the round-up is quite helpful.
- Dojo
- Google Web Toolkit
- Microsoft Atlas
- Open Rico and Prototype
- Yahoo AJAX Library
- Zimbra Kabuki AJAX Toolkit
Whilst the definition of open source is broad, the round-up is quite helpful.
http://ww6.infoworld.com/products/print_friendly.j sp?link=/article/06/07/31/31FEajax_1.html
My mom always said, "Jim, you're 1 in a million." Given the current population, there are 7000 of me. God help us all!
This column uses an interesting definition of Open Source.
From the article:
Microsoft's Atlas may not be open source -- the license 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.
Oh. Is that what Open Source means? That I can create apps with it and license them how I like? Well, crap, Visual Studio must be open source too!
Last I checked, neither Atlas nor GWT were open source in any sense of the word, though at least GWT will run on real servers.
This is in response to Google's toolkit, which allows users to code in Java instead of Javascript. I think this feature is a real winner to Java coders. Who wants to code Javascript when you can use Swing? Regardless of what TFA says, there is a difference between the two programming experiences.
In summary, if you are already proficient in Java, Google is the way to go.
Information wants a fueled airplane waiting at the hangar and no one gets hurt.
Or just write the ten lines needed to do XMLHttpRequest calls yourself (there, that's the AJAX part taken care of), and for all other effects write your own functions just like always (copy/paste from your personal library and adapt), so you don't have to deal with bloat, nine out of every ten functions being unneeded, and far too many levels of abstraction and generalization, and have the benefit of actually being able to quickly debug the script when you encounter a problem!
The only organizations where these toolkits might be useful are the really really large ones where there's a team that can dig into the framework and basically "make it their own". Everything smaller, using occasional contractors to maintain the code, benefit far and far more from simplicity, readability and maintainability than from dubious-quality top-heavy frameworks with lack of code-level documentation and thousand and one edgecase-bugs. (Spoken like someone who's had to trace such bugs in the mess of prototype and scriptaculo.us; I've only _looked_ at Dojo, Rico, Yahoo and Zimbra (and not at all at the other two), but my impressions were that what they made up in better code quality, they lost in bloat.)
If you're doing Java/J2EE work, you should really have a look at DWR
It makes it disgustingly simple to expose pretty much anything as AJAX calls
Why do we care what horse-breeders think? I mean since when have they been the technical thought-leaders?
The more you regulate a company, the worse its products become.
"Whilst the definition of open source is broad, the round-up is quite helpful."
Hemos appears to have misspelt "incorrect" as "broad".
Argh.
Using Atlas for asp.net (http://atlas.asp.net/). Fantastic framework; unbelievably simple.
I took a normal asp.net form I built for an ordering-page (lot's of postbacks for updating various basket options, etc, etc), wrapped it in an atlas XML container (all of 10 seconds work), and Bob became my uncle - the entire thing was AJAX enabled, doing lightweight postbacks & updates instead instead of the usual full-page postbacks you normally get with asp.net page-events.
And all the JS is cross-platform too - IE, FF, Safari, etc (allthough, sadly, no Opera support just yet).
And the best thing is, for all you JavaScript haters is turning off JS in the browser just meant the page automatically reverted to full-blown postbacks instead; thus not limiting accesibility.
Oh, and I understand you can link php into Atlas too, but I'm guessing there's other stuff out there for php aswell.
throw new NoSignatureException();
http://www.sitepoint.com/article/javascript-librar y
--
Carnage Blender : Meet interesting people. Kill them.
I just went through and evaluated most of these myself in the past week because of a new work project. Dojo is by far the best when looking at building a real web "application". The others have limitations (such as Google's toolkit which requires you to write your code in Java) or are focused too much on "flashy" stuff. Dojo provides dialog boxes, windows, an editor, and more. It still has bugs and is an early version, so you need to consider your audience and time frame. For example, I had a problem with FF 1.0.7 (even though they say it is supported) but I only need to support FF 1.5 and Safari 2. I'm building a complex web app for an internal audience and I can guarantee they'll have one of these 2 browsers. Still, it seems to have broader support than some of the others toolkits. While I'm jsut starting with it, I've been happy so far. There's little documentation but the examples are good enough to get you started.
What about Echo2 http://www.nextapp.com/platform/echo2/echo/ ?
Why is that script.aculo.us is left out of these comparisons? script.aculo.us is behind the AJAX in most Ruby on Rails apps, but it can be used on its own. (As of Rails 1.1, Rails has special built-in support to make it even easier to use.)
The space unintentionally left unblank.
...make sure you check out qooxdoo.
Its not the best known, but its one of the most promising toolkits in [very] active development. I've been involved (sort of -- following the mailing list) and its open source & very slick.
http://www.qooxdoo.org//
The 0.6 release is expected in the next day or so, and is a big jump over 0.5. The only area that is still a bit weak is the documentation, but there is a good group of developers working actively on getting that properly sorted for the next release.
As many have noted the article is really quite clueless. However, any review on Ajax toolkits is not complete with a mention of Direct Web Remoting.
Central idea behind DWR is it exposes methods of Java Beans over the web. Create a server side class and then call methods from javascript like this: MyBean.method(). It couldn't be simpler.
I have used DWR in my just released online version of Risk, called Grand Strategy.
I'm a little surprised that nobody has mentioned jQuery (http://jquery.com/). While it does AJAX, its much more than that, and lets you write some seriously concise script. There's also a lot of activity from Dean Edwards (http://dean.edwards.name/) on the mailing list, which is probably a good thing. Also looks like it might be the only/first library to find a true solution to the whole cross-browser "window.onload" problem (as of version 1.0, currently in beta).
I'd recently given myself a crash course in javascript for a site I was working on. Ended up using the moo.fx (http://moofx.mad4milk.net/) library with niftycube (http://www.html.it/articoli/niftycube/) for the all important rounded corners. Checked out dojo but it seemed a little more than I needed. Also glanced at Yahoo.
e ct_position
Looking over the packages listed here, I'm especially impressed with Rico. Single file used in conjunction with the prototype.js script. And a really excellent demo page:
http://openrico.org/rico/demos.page?demo=rico_eff
The author of the article gives Yahoo credit for the package management -- I think Rico deserves a praise for their site, too. I look forward to giving it a whirl.
Innovation makes enemies of all those who prospered under the old regime... -- Machiavelli
Personally I think the Yahoo YUI Toolkit is the best framework out there. It is commented very well, it is 100% cross browser compatible (they test on Opera, Firefox, Netscape, IE etc). It is fully supported by a team of engineers. They provide several versions of each script, so you can build your site with the -debug script, move to the normal script, and then when putting it on a live server, you include the minimzed script which is much smaller.
Just my experience, but they were all a little lacking (although I admit I'm a novice in AJAX).
Rico's newsgroup was great; I got (friendly) answers within hours, but I'm not exaggerating when I say the documentation was the worst I've ever seen. If I had more time to play around, I would have stuck it out and helped (their community is cool), but I'm on the clock and need simple working examples.
I briefly tried Atlas and was impressed with ease of use, but got hung up with bugs (it's beta, but will be a good tool when it's ready).
Dojo had good starter documentation. I spent a while trying to figure out something poorly documented and figured I'd write a brief tutorial, but was surpirsed they have a "closed" Wiki. After some digging, it suggested dropping the developers a line to get an account, but wasn't able to find the address. I gave up. I can see why their documentation is so spotty, since they ignore what a great tool a Wiki could be. The psuedo-Wiki gaps are somewhat filled by a pretty good newsgroup though.
YMMV, but Dojo was the best of the tools I worked with.
I looked at some of these a while ago. Zimbra has one of the coolest demos. But many of these severely (or completely) lack documentation, which means they are not ready for anything but "mom's basement, no deadline" type projects.
This stuff is really exciting, but until there is documentation, it is not worth mentioning at work.
A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
I've tried Dojo and the Prototype derivatives - Moofx, Rico and Scriptaculous. I don't really like Dojo because it seems so basic. Moofx is pretty good for lightweight effects, and the weight factor for effects goes up with Rico and even more with Scriptaculous. Bad thing about Prototype based scripts is that it doesn't play well with others due to Prototype's large manipulation of core objects. Enter QOOXDOO. Qooxdoo surprised me with how advanced it was. And its free. It is definately the script anyone needs to build a complex user interface for any application, because its designed to look just like an application. Its documentation is sparse, but the development community is amazing. they respond very quickly, and are working hard to fill the gaps on the documentation. The latest version is a vast improvement. The examples are very diverse, showing all the possibilities this remarkable script can do. if you really want to see an advanced framework that looks incredibly awesome, check out Qooxdoo...http://www.qooxdoo.org
There are also toolkits and JavaScript apps that combine W3C standards with AJAX, letting you write a lot of the dynamic page stuff in a declarative fashion, using just markup (XHTML+XForms; I was an editor of the XForms 1.0 recommendation, but new revisions have come out; see http://www.w3.org/TR/xforms).
The FormFaces OSS product is an entire XForms implementation done in JavaScript, running in the browser. You write your page in HTML with XForms markup, and FormFaces does the "HiJax" thing of re-writing it for you. You never need to use XmlHttpRequest, and you can interact with regular servers, RESTful services, etc., all via XML.
Another product that does this, in a slightly different way, is AjaxForms. I just found out about it, but it looks pretty good. AjaxForms uses some server-side components to do the translation from strict XHTML+XForms markup into Ajax (HTML4+JavaScript), but they claim it can work in PHP and Tomcat servers. Again, FOSS, and available at http://ajaxforms.sourceforge.net/ [sourceforge.net]
I recently implemented dynamic forms for weblogs and wikis, and did it using Chiba, another FOSS product, that like AjaxForms does its conversion on the server, using Tomcat as a container.
The Orbeon folks have a nice blog that shows how to use XForms (their implementation, the Mozilla extension, or any of the other above toolkits) to accomplish typical dynamic page tasks such as listing countries and ISO codes, or resizing flickr (also via formsplayer.
APhPLIX is a toolkit for building Ajax web applications with a traditional GUI.
It comes with a visual development studio web application for point and click application development, and it's all open source.
I think there may be some similar proprietary products, but I don't think there are any other open source projects like it.
--
zeemu