We recently were asked to make an offer to create a web based solution for a desktop software. Visually we only had some screenshots of the original desktop application. To make it easier for the customer to decide how a possible solution could look as a web application, we tried to create a prototype looking kind of similar to what his product looks like until now. Calls for Web2.0, don't you think?
Here at Mayflower we have a lot of experience mainly with Prototype (and also with the mighty, prototype-based Scriptaculous) and Dojo. Although the documention of prototype seems more complete and easier accessible, Dojo is more mightful, and, yes, it's an API ;-)
Dojo calls itself "the Open Source Javascript toolkit that makes professional web development better, easier, and faster." It's licensed under the AFL and the BSD as well and is supported by the Dojo Foundation which list some of the big names in the industry as their sponsors and partners. Recently Sun joined the list of companies supporting the Dojo Foundation.
Dojo does not only contain widgets for flashy Web2.0 applications, but lots of different things to write real JavaScript applications (hm, isn't that an antagonism ;-), with support for crytographic routines (dojo.crypto), linear algebra and other mathematical support (dojo.math). It also brings some new data structures out of the box (dictionary, FIFO, FILO).
To get a visual impression of what Dojo's widgets are capable of so far, you should check out the "see it in action"
section on the Dojo website.
So we decided to create the prototype not using prototype but using Dojo (using the meanwhile deprecated 0.2.2 version) - sounds odd, he?