Monday, June 19th, 2006

JavaScript World Cup of Frameworks

Category: Articles, JavaScript, Library

In the spirit of the most common question “What Ajax framework should I use?” and the current World Cup, a new article goes through and gives you a high level look at some of the many frameworks out there.

Over the past year or so, as DOM Scripting has exploded in the mainstream coding arena on the back of AJAX, a seemingly endless number of JavaScript libraries have joined the list of contenders. Fortunately for our poor brains, there are four libraries that have emerged as the clear forerunners in terms of their levels of adoption, documentation and community support:

  • Dojo, a powerful library developed primarily off the back of JotSpot
  • Prototype, the backbone of Ruby on Rails excellent AJAX support
  • Mochikit, the Python library that makes JavaScript suck less
  • Yahoo UI Library (often shortened to just YUI), the new kid on the block

Of these four, there is no clear front-runner yet. Each library differs enormously from the others not only in features, but in less tangible aspects like ease-of-use, community support and philosophy. One of the most important factors in choosing a development platform is how well its philosophy fits with the way that your brain works.

In this article, I’ll examine each library to help you decide which one best suits your development style and project needs. While it would be impossible to cover every aspect of each library, I’ve done my best to cover the highlights of each of them, as well as give some insight into how they handle the bread-and-butter tasks of DOM manipulation, event handling and AJAX.

Posted by Dion Almaer at 5:53 pm
9 Comments

++++-
4 rating from 35 votes

9 Comments »

Comments feed TrackBack URI

Unfortunantly the article doesn’t (yet) include the corrections I forwarded on to Dan regarding Dojo’s dojo.lang.forEach, dojo.lang.map, and dojo.html.getElementsByClass methods. It also misses dojo.lang.map, dojo.lang.filter, dojo.lang.every, dojo.lang.some, dojo.collections.*, dojo.dom.*, and dojo.Deferred; all of which have been apropos given the criteria he makes his final judgements on.

Comment by Alex Russell — June 19, 2006

Could we see a list of the top X frameworks for JS and AJAX please?
I can’t seem to find one …

Comment by Dan — June 19, 2006

Well the four front runners you list
Dojo uses Prototype….
Prototype web site only show version 1.4.0
Current version of Dojo v0.3 uses 1.5.0 and is included in the download,
and the YUI has a failing in the calendar library….. search the code for
image root and see if you can spot the delibrate mistake.

Comment by pete feeney — June 20, 2006

[…] The JavaScript Library World Cup (dojo, prototype, mochikit, yui) – via Ajaxian. […]

Pingback by The javascript library world cup. — June 20, 2006

Hi Pete,

Dojo does not rely on Prototype in any way, shape, or form. We do not include it in our release builds and we do not develop with it. We *do* however “play nice”, that is to say that if you include both Dojo and Prototype on the same page, Dojo promises to continue to function in the face of whatever weirdness Prototype may introduce into the environment.

Broad compatibility testing !== dependency.

Comment by Alex Russell — June 20, 2006

Would be nice to have an answer to each point posted on the dojo news letter.

Comment by Javanaute — June 20, 2006

After your comments Alex I went back to look at my release, my apologies for the mistake.
Middle of project is my excuse for my early morning rant of frustration.
A combination of Spry, Dojo, Prototype windows and YUI is not making my life easy.

Comment by pete feeney — June 20, 2006

I think Ryan needs to take a few deep breaths and ask himself if he is really spending his time wisely. If you have a problem with the article maybe you should direct it to the source (did I just invite a troll over to SitePoint?) rather than bollocking Ajaxian for posting a freaking link. Alex: I will prod Dan about the dojo fixes you mentioned.

Comment by mattymcg — June 20, 2006

document.write(“Comment”)

Comment by lkj — June 26, 2006

Leave a comment

You must be logged in to post a comment.