Gonna put my two-cents in...
I’ve used Mootools for quite some time now. In fact, it’s the first javascript framework that I adopted for longterm use. It’s a good framework and does the job. Where Mootools really shines is in its ability to promote and use classes. However, Mootools isn’t without it’s own quirks. There are areas here and there that can really try your patience. With Mootools, I think it really depends on your methods and style of programming. While I’m comfortable with Mootools and like it, I really wanted to find something that was a bit easier, quicker, and more flexible to deal with different situations and problems.
Last month, I decided to give jQuery a whirl and even picked up a good book on it (jQuery in Action). What really surprises me is how robust jQuery is when it comes to selectors. The thing I really like is that there is just one way to deal with selectors. With Mootools, the dollar function is used to represent an element with a specific ID and the double-dollar being used for selecting classes and such. Personally, this has always bothered me. With jQuery, you use just the dollar function and can select anything just like you do with CSS. To me this is far more flexible and, in my opinion, makes jQuery more powerful than Mootools in being able to select elements.
As far as classes are concerned, jQuery does allow class-like functionality in the form of plugins. Mootools does the same thing via the extend function but with jQuery it just seems much easier to extend the core and create your own plugins. When it comes to native support for classes, you can add your own classes as you see fit with any javascript library. After all, what is a class in javascript but a wrapped array of functions. The only difference is whether you want the class to extend off the namespace of the library you’re using or not.
The other thing I like about jQuery is that it feels like I can do so much more with so much less code. The average things I’m used to doing with Mootools takes less code to complete with jQuery. That means faster development and less time writing and debugging code.
Which library you go with really depends on what you want it to do, what your philosophy is, and what your programming style is. I’ve used Mootools for some time now but after taking a hard look at jQuery I decided that it was the best one for me. I also like ExtJS for larger applications. Just pick the poison that is best for you.