The two are similar at first glance but pretty different when you get into it.
jQuery specializes in making javascript/DOM interaction drop dead simple. Nothing else out there comes close to achieving this as well as jQuery. When I write with jQuery, the most basic pages are written functionally and when I need something more advanced it's easy to step into some OO. But, jQuery does nothing to help with object oriented javascript, you have to use javascripts prototype model.
MooTools specializes in being more of a javascript framework. It adds functionality to javascript (which is controversial in itself), and lends itself to a very classical object oriented development approach.
Both tools are quality, jQuery has a huge user base, whereas MooTools has a smaller and very rabid user base. If your project is a very UI/javascript focused project then MooTools may be the right answer. If it is not, and is just your typical site/application, then jQuery is probably it.
One thing that converted me from Mootools to jQuery was how much control I have over my code with jQuery. With Mootools I found myself constantly constraining myself to the design patterns the Mootools team found best. Although those design patterns aren't bad, they sometimes don't suit the most intuitive solution to a problem. jQuery on the other hand, lets you do whatever you want. You can use Mootools and jQuery at the same time (which is a killer combination if you use the "Core Builder" for Mootools).
Also, the jQuery UI package is fantastic. It is without a doubt a great way to do progressive enhancement: it uses a css framework, sprited icons, and js for the interaction in separate layers. Mootools More feels disjointed and unfocused, while the jQuery UI project feels crisp and professional. Any functionality you like in More is available as jQuery plugins, which brings me to this point:
I find it much easier to modify the code for a jQuery plugin than I do a Mootools class. I personally find it much simpler to change a few function calls than redo the structure of a class.
3 comments
[ 3.5 ms ] story [ 14.6 ms ] threadIf there are two roughly equal (in a technical sense) technologies it usually makes sense to go with the one that has the big advantage in momentum.
jQuery specializes in making javascript/DOM interaction drop dead simple. Nothing else out there comes close to achieving this as well as jQuery. When I write with jQuery, the most basic pages are written functionally and when I need something more advanced it's easy to step into some OO. But, jQuery does nothing to help with object oriented javascript, you have to use javascripts prototype model.
MooTools specializes in being more of a javascript framework. It adds functionality to javascript (which is controversial in itself), and lends itself to a very classical object oriented development approach.
Both tools are quality, jQuery has a huge user base, whereas MooTools has a smaller and very rabid user base. If your project is a very UI/javascript focused project then MooTools may be the right answer. If it is not, and is just your typical site/application, then jQuery is probably it.
Also, the jQuery UI package is fantastic. It is without a doubt a great way to do progressive enhancement: it uses a css framework, sprited icons, and js for the interaction in separate layers. Mootools More feels disjointed and unfocused, while the jQuery UI project feels crisp and professional. Any functionality you like in More is available as jQuery plugins, which brings me to this point:
I find it much easier to modify the code for a jQuery plugin than I do a Mootools class. I personally find it much simpler to change a few function calls than redo the structure of a class.