Ok, i have used both in both open social environments and large corporate websites.<p>//<p>//<p>==MooTools==<p><i>-very simple, very light, almost minimalistic<p>-the community is more on the "creative" and "artist" side of things, the site just looks well designed<p>-Mootools becomes unmanageable in a mixed framework enviroment</i><p>//<p>//<p>==jQuery==<p><i>-great for the medium sized website<p>-unobtrusive, allows you to rename the jQuery object<p>-architecturally simpler, but highly abstracted<p>--does not map to native javascript, so its a ton of work to pull jQuery out of your JS.<p>-HUGE community<p>-hundreds of Plugins<p>-has inside influence with Mozilla, Webkit, and now IE<p>-documentation wiki, when something is broke, anyone can fix it.</i><p>//<p>//<p>==reasons to use neither==<p><i>-framework lifecycles are hard to manage right now<p>--websites with thousands of lines of code can be hard to upgrade to new versions<p>-developers need to learn Javascript 1st and then the Framework<p>-Caja breaks most frameworks<p>-Half of Opensocial users are on Caja containers<p>-debugging can be easier on native code.</i><p>//<p>//<p>there are things i love about both frameworks and i would recommend either of them to different people, but i think any JavaScript 'rockstar' will need to know all of the frameworks and why one is better than the other.<p>personally i don't like prototype (sorry), but the namespace is bloated. Why do i have a different interface for css selectors and element ids, jQuery Gets this WAY right. i am finding that i don't like attaching framework objects to element IDs, it forces you to have ids on everything which should all be unique. i am still deciding if css classes make more sense, or maybe a custom attribute makes more sense. the downside to this would be performance. ids are hashed, vs attributes are not.