Javascript is a much more powerful language than it is often given credit for. With a lot of browser support these days, many applications are using javascript far more to enhance the user experience and provide visual effects. To cater for some of these things, a few frameworks have emerged. Hopefully this will give javascript developers out there a bit of an insight to the various libraries and frameworks available.
PrototypeOne of the first to become popular, prototype is very well established and provides a very extensible base, with a large number of supporters. It is a large framework (file size wise), but it is very comprehensive. It did have problems with documentation in the past, but it now is
very well documented. There is also a compressed version of it available for use
here.
script.aculo.usThis technically is not a framework in itself, but it adds on to the prototype framework with some visual effects and a lot of user-interface oriented functions to make working with js easy. Used by sites such as
Digg,
Apple and
Ruby on Rails.
MootoolsPossibly the "trendiest" in the group, it is starting to become quite popular, especially in the design area. It is marketed as being very light-weight and provides a very unique "
packager" to ensure you only download the features you require (to reduce file size). It's used by sites such as
joomla,
cnet and
ubuntu.jQueryThis framework has been getting a lot of press lately. They recently released a new version claiming an average 800% speed increase. You can also download both
uncompressed and compressed versions of the source code straight from the download section. Sites using jQuery include
SourceForge,
BBC and
Intel.
Yahoo! User Interface LibraryThe yahoo interface library is exactly as the name suggests, it provides some great tools to help with basic user interface items, such as autocomplete, calendars and tree/navigation views.
iFilm and
Podtech use YUI extensively.
Google Web ToolkitWho can argue with the great google releasing a javascript toolkit! Once again, its features are similar to the yahoo library, and provides some great tools for user interface interaction. It focuses a lot more on server/client communication via Ajax. One big difference is that you are required to use a java-based development toolkit, and while it is very extensive, it is not particularly easy to use or deploy for n00bies, and requires you to use the
Java SDK.
Microsoft AjaxIn a similar offering to the above Yahoo and Google toolkits, Microsoft has released it's own named "Ajax". This is a great extension to developers already using ASP.net, and is obviously the way to go, should that be your language of choice!
Other Frameworks:Thanks for readers pointing out some I'd missed...
SummaryTo sum things up, the right toolkit for you could be any of these depending on your situation. I generally use prototype+scriptaculous due to the fact they are very well supported and there are a huge number of people using it compared to the others. Mootools would have to be my second choice, as they seem to be very "in-touch" with features that real world designers are looking for.
#1 Elliot says:
I'd check out Ext too, it's brilliant.