Book Review: MooTools 1.2 Beginner’s Guide

By  on  
MooTools Book

In the interest in full disclosure, I was sent this book by Packt Publishing in hopes that I would review it. I'm reviewing this book, however, in the interest of my audience.

Unless you live under a rock or simply check my site for Christina Ricci pics every morning, you know I'm a bit of a MooTools fanboy. I spend hours every day writing MooTools tutorials, getting in touch with the MooTools community and development team members, and oh yeah...coding a bit too. When it was brought to my attention that Jacob Gube and Garrick Cheung had written a MooTools book for beginners, I was really excited to check it out. The following are my thoughts on their book.

The Authors

Jacob Gube, Garrick Cheung

The Tagline

Learn how to create dynamic, interactive, and responsive cross-browser web applications using this popular JavaScript framework.

Shooting From the Hip

Instead of giving you this super long review that you wont read, I've decided to put my thoughts into bullet format. How clever!

  • What I really love about this book is that it's not a bunch of "theory" information -- it's no-nonsense, code-based learning. I LOVE these style of books.
  • The book is ~ 150 pages, which is about right for a beginner's guide. Making it too long would be a huge mistake.
  • The price point is $40. Reasonable.
  • The book covers a large array of sample projects and code examples -- you aren't looking at the same code snippets everywhere. Awesome.
  • One gripe is that I don't recall the book ever discussing the difference between MooTools and similar libraries like jQuery, Dojo, etc. MooTools' object-oriented architecture and the idea of modifying native object prototypes is core to the framework and differentiates MooTools from other libraries. That really should be included in a "version 2" book.
  • I was not included as a MooTools resource -- clearly an oversight. Hahaha.
  • The book *does* cover creating a unique build of MooTools Core and -More. This is very important as beginners should know that MooTools is built to be incredibly modular and Moo programmers should code with that same idea in mind.
  • The book flows very well and the progression of difficulty is perfect. Beginners will really appreciate the pace of the book.
  • While Jacob isn't a member of the team, he co-authored with contributor Garrick Cheung and asked Christoph Pojer, a MooTools Core Developer, to be technical reviewer. Involving people very close to the team was a great idea; it helps the book's credibility and allows for all options to be considered. * I don't mean to say this to discredit Jacob -- he's done a great job with this book and you certainly don't need to be a team member/contributor to be a MooTools expert.
  • I know it's Packt's style, but the "Impact"-style heading fonts are ugly.
  • The book doesn't try to explain or gloss over basic JavaScript. Thank you, thank you, thank you!

The Verdict

I was very impressed with this book and I believe it's the perfect book for any developer looking to enter the MooTools pastures. My only major desire is that the book cover MooTools' native object prototype modification; beside that oversight, I'd recommend this book to both rookie and novice MooTools developers. MooTools 1.2 Beginner's Guide should be required reading for MooTools developers looking to master the basic of MooTools.

Recent Features

  • By
    Vibration API

    Many of the new APIs provided to us by browser vendors are more targeted toward the mobile user than the desktop user.  One of those simple APIs the Vibration API.  The Vibration API allows developers to direct the device, using JavaScript, to vibrate in...

  • By
    39 Shirts – Leaving Mozilla

    In 2001 I had just graduated from a small town high school and headed off to a small town college. I found myself in the quaint computer lab where the substandard computers featured two browsers: Internet Explorer and Mozilla. It was this lab where I fell...

Incredible Demos

  • By
    HTML5’s placeholder Attribute

    HTML5 has introduced many features to the browser;  some HTML-based, some in the form of JavaScript APIs, but all of them useful.  One of my favorites if the introduction of the placeholder attribute to INPUT elements.  The placeholder attribute shows text in a field until the...

  • By
    Shake Things Up Using jQuery UI’s Shake Effect

    Yesterday I created a tutorial showing you how you can shake an element using Fx.Shake, a MooTools component written by Aaron Newton. It turns out that jQuery UI also has a shake effect which can draw attention to an element. The XHTML Exactly the same as...

Discussion

  1. Allen

    Thanks for the review. Re: bullet 5: It sounds like that would be outside of the scope of this book, anyway — after all, you praise it for being no nonsense, straight to the point. If it’s good that it doesn’t even bothering with basic JavaScript, why would it bother with other libraries? If the bottom line is: Take mootools, make stuff with it, then it matters not at all how this tool differs from other tools. Right?

  2. @Allen: I would say it’s important to differentiate the methods by with MooTools works from other frameworks, *especially* for beginners.

  3. I want to get this book. While I understand the need to evangelize, I think the tactic of telling me how to use Mootools (regardless of other frameworks) appeals to me.

    @Allen, I agree, I want to make things work. I need basic instruction. I can compare to other frameworks later.

    @David, Mootools needs your evangelizing to remind us why Mootools is the best, but Mootools needs more foot soldiers. Maybe the book is a good approach to adding users.

  4. David – thank you for such an awesome review! Just saw this in my RSS feed reader (and Twitter), and I thought I’d pop in and say “Hello”.

    Just a point about the MooTools versus other frameworks discussion: I think that’s a great idea. I am familiar with jQuery probably as fluently as MooTools, and Aaron’s comparison of both frameworks pretty much sums up the things I would’ve mentioned if I were to include a discussion on various frameworks. However, for the book, I wanted to focus on MooTools and what’s good about MooTools, because I wouldn’t be able to write this section without an obvious bias inside a book about MooTools.

    Your blog not being included in the Resources section, indeed, is a clear oversight on my part! Massive FAIL on my part there. :)

  5. @Dwight Blubaugh: Writing books is a good way (I hope…), but also, what I feel has been helping tremendously in terms of getting the word out there is David’s efforts in writing tutorials to showcase the power of MooTools through practical hands-on tutorials on sites like NETTUTS and here on his site.

    Hope you get the book and let me know what you think when you get a bit of a chance to read it!

  6. @Jacob Gube: Hahahaha. I was just joking about not being mentioned. Nice work!

  7. Daniel Shanahan

    Thanks for this review, David. Regarding the differentiation of MooTools from other libraries, have you written anything on this? I have heard you talk about it on the JQuery podcast. Would this be too long for a blog post (or a series of posts)? I am a beginner in all things Javascript (i.e. Javascript, JQuery, MooTools, etc.), and I would really like to have something in writing that clearly explains the differences.

    Thanks!

  8. @David Walsh: Yeah, I knew you were kidding, but stilll… whenever I Google something about MooTools, this blog is a top search result, so that means it *is* a wonderful resource for MooTools.

    @Daniel Shanahan: I’d like to take a stab at your question. First, why there isn’t a comprehensive comparison of all frameworks: your hunch is correct, it would be very long and it would have to be constantly maintained. Something like this would be better off in a collaborative format (such as a wiki) because it would be very difficult for a single person to expertly talk about all the other JS frameworks and libraries out there.

    To me, there are three main categories of JS libraries for web development: (1) a library of useful web development methods and functions (jQuery), (2) a framework that extends JavaScript to add missing, useful functions and methods (MooTools, Prototype), and (3) a full JS framework that includes user interface elements (YUI, UIZE).

    These JS libraries would fall–again, according to me–into a broader category of “Web development frameworks” because they serve not to perform a single function, but rather, to give developers a set of tools for creating sites and applications that are JavaScript-enabled in a quicker way than starting from scratch.

    Staples in these web development libraries would be Ajax, DOM selection, DOM manipulation, and cross-browser support functions and methods, at the very least. Often, they’ll come with animation/transition effects and utility functions and methods that help you do common stuff such as looping through a collection of DOM elements in an array and performing stuff on them.

    The biggest factor of your choice is either circumstance (boss is telling you to use it) or personal preference/style. If it is the latter, try a few and see which one you like the best. I find that classical programmers and web developers (server-side web app builders) find MooTools more to their tastes because it’s very OO. jQuery (and this is an opinion from me based on experience in working with many developers – it is not a fact) is more appealing to beginning front-end developers (HTML/CSS/JavScript) and web designers because the syntax is very terse and intuitive.

    Intuitiveness is dependent on your background though: OOP and classical programmers would find MooTools more intuitive (if you follow MooTools best practices of utilizing Class for reusing functions and methods). There are syntax inconsistencies that I find in jQuery that always trips me up, that a beginner would probably not have trouble with because that was what they were trained in.

    If you know JavaScript already, you already know MooTools. If you want to learn JavaScript, using MooTools would teach you JavaScript naturally. Some libraries twist and bend JavaScript for the sake of ease of use and shorter syntax (for a lower learning curve targeted at novice developers that need to learn real quick).

    Also, in MooTools, it’s much easier, shorter, and quicker (for me) to build flexible things like slideshows and tabbed interfaces because of Class.

    So if you build a lot of sites for many different clients, you can write just one MooTools class for an image gallery that you can customize through instantiation in your different sites. I’m not saying this is particularly unique in MooTools, but it is one of the frameworks that excels–and even integrates it in its best practices–in this sort of thing.

    You see why David hasn’t blogged about this? Look at my comment, it’s so long, and I barely scratched the surface.

  9. Daniel Shanahan

    @Jacob Gube: Thanks, Jacob. Your comment is very helpful.

  10. Zlatan Halilovic

    If it weren’t for your review, I would have never considered to buy this book, and now I really do, so thanks for that David. Oh, and thanks to Jacob for that throughout comment of his.

    Btw, I’ve read an introductory book on javascript and worked with jquery for a few months, and the thing that I’m not sure about is whether I should pick up a definite guide to javascript type of book before I dwelve into MooTools, or just start learning MooTools and learn the advanced concepts of javascript along the way. Can any of you help me with this?

  11. Good review but I wish you would review a book about beginner Javascript (ya know, not the libraries).

  12. i wish i could buy this book tooo :S no resources to buy :(

  13. http://jqueryvsmootools.com/

    Anyone interested in a comparison of frameworks, check out the above link.

    I have the book and I love it. I know some basic JavaScript through practice and reading, so I wanted to dive right into MooTools and start building. :)

  14. sapience

    I am a complete novice and simply can’t get past the instructions to ‘load the core and tools to the server” WHERE do I put it on my server??? All any tutorial ever says is ‘load onto server’… Do I need to create a folder in the root, place it within the public-html of one of my websites…where??

    Sorry, but I just don’t get it… :(

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!