The Dopefly Tech Blog

<< The Dopefly Tech Blog Main page

Choosing a javascript framework

posted under category: General on May 10, 2006 at 1:00 am by MrNate

I've been thinking about choosing a javascript framework for a few weeks now, and, having no experience using any, so I was hoping for suggestions.

Frameworks on my radar are Prototype, Dojo, Scriptaculous, MochiKit, and I've briefly hit up the frameworks page on the Ajax Patterns wiki, but have become pretty completely overwhelmed.

Does anyone actually use OSS JS Frameworks? For all of my projects, so far, I have always built my own from scratch, but I'd love to build on the work that a lot of others have already put in.

Too old to comment!
On May 10, 2006 at 1:00 AM Rob Wilkerson (r.d.wilkerson has underestimated the power of said:
I've been using prototype for a while and have loved it. There's decent documentation (something that was - and maybe is - severely lacking for DoJo). Plus, Prototype can be extended naturally and there are a number of existing libraries that build on top of it. Scriptaculous is one of those, event selectors is another.

I've also used Rico a little bit, but haven't found it as useful for what I've been doing.

If you choose Prototype, there is great documentation here:

On May 10, 2006 at 1:00 AM Rob Wilkerson (r.d.wilkerson at the endearing said:
Oh, one thing I should mention, though, is that Prototype is pretty heavy. There's a /lot/ of stuff in there. If you only need/want a subset of the available functionality, there are a couple of lightweight implementations of Prototype out there. I believe one is MooFX (or some such), but I haven't used any of these and can't speak to their capabilities.

On May 10, 2006 at 1:00 AM Nathan Strutz ( said:
Thanks, Rob.
One more question I had: Scriptaculous is built upon prototype, so if I use Scriptaculous, do I get everything from prototype, too?

On May 10, 2006 at 1:00 AM David (dstarh from said:
Im sort of doing both - im writing my own OSS framework. scriptAbles - so far it only has a few things in it, and it's built on top of prototype scriptaculous. The coolest thing it has is a rubberband selector.

On May 10, 2006 at 1:00 AM Darin Kadrioski (support, by way of said:
A bit of nepotism here, but have you looked at at all?

On May 10, 2006 at 1:00 AM Nathan Strutz ( said:
That's just the thing, Darin. I haven't looked at any of them because they're so overwhelming. What does yours do that the others don't?

On May 10, 2006 at 1:00 AM Qasim Rasheed (qasimrasheed, by way of said:
Speaking of protoype, I have found this tutorial to be very useful

On May 10, 2006 at 1:00 AM Kelvin Luck ( said:
Check out jQuery ( Not exactly a framework, more of a library but lightweight and powerful. Haven't tried any of the others but a big fan of this one...

On May 10, 2006 at 1:00 AM Michael Dawson ( or said:
I love AJAX Toolbox by Matt Kruse.

It is very simple to implement and start using, yet very flexible. It is quite worth the time to view some of his examples.


On May 10, 2006 at 1:00 AM Martin ( said:
Prototype is my framework of choice. It's clever and very extensible. What made me choose it is that it pretty much encapsulates all the stuff that I had to write everytime I created a new project. Combined with scriptaculous (you're right, if you use scriptaculous, you get prototype with it), you get a truly awesome set of tools. It is heavy but if you want to use javascript extensively, it's perfect.

On May 10, 2006 at 1:00 AM Mike Kelp (mike.kelp at the ever popular said:
I pretty heavily use Scriptaculous (built on prototype) and have been very happy with the one-liner functionality it tends to offer for common stuff.

I am also experimenting with dojo as it has a packaging system similar to Java and seems a lot better for all the times when I need to make a custom piece of functionality.

As for the weight of these, I haven't seen any issues with any of them being too big, but I keep most of my pages very stripped down with CSS, so adding the library doesn't make the total page load time too much.

On May 10, 2006 at 1:00 AM Mark Ireland ( or said:
I havent used it much but how about Yahoo Patterns?

On May 11, 2006 at 1:00 AM Daniel Schmid ( said:
I am also on the hunt...

The Yahoo UI Library looks intressting to me. Nice documentation also...

On May 11, 2006 at 1:00 AM Rob Wilkerson (r.d.wilkerson has underestimated said:
Nathan - to answer your question, you must have Prototype installed to use Scriptaculous, so yes, you get all of the Prototype "goodness". It seems to me that the latest version of Scriptaculous embeds Prototype for you, but I can't remember for certain. From what I've seen, Prototype is the workhorse and Scriptaculous is the eye candy in that marriage.

If it helps, here's a decent comparison of Prototype and Dojo:

On May 11, 2006 at 1:00 AM Trond Ulseth ( said:
And now there is Spry

On May 11, 2006 at 1:00 AM Bob ( said:
I highly, highly, HIGHLY recommend the moo suite of tools ( They're designed to be extremely light, they're easy to understand (if you understand javascript of course), and they are very full-featured and easy to build on. Highly.

On May 11, 2006 at 1:00 AM Bryan Kaiser ( said:

I would recommend staying away from Dojo. It's a fantastic idea, but the thing is just too big for it's own good. I helped develop a product using Dojo and there were many things that simply didn't work. The documentation problem has already been mentioned, but it's worth mentioning it again. Without the documentation you have to resort to tracing through the code, which takes a LONG time. We're actually going to pull all of the dojo stuff out of our product and replace it with prototype/scriptaculous.

On May 11, 2006 at 1:00 AM Nathan Strutz ( said:
Mark and Dan,
From what I can tell, the Yahoo stuff is mostly patterns and toys, not so much a framework that will make coding fun and easy. They do have the YUI Library Utilities, however, but something about it just turns me off... Maybe it's the lack of bundled friendly packaging. I've integrated their UI calendar once, and it was ok, just not something I would go with for general JS coding.
Too old to comment!