Treehouse

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.

ydkjs-4.png

Recent Features

  • 5 Awesome New Mozilla Technologies You’ve Never Heard Of

    My trip to Mozilla Summit 2013 was incredible.  I've spent so much time focusing on my project that I had lost sight of all of the great work Mozillians were putting out.  MozSummit provided the perfect reminder of how brilliant...

  • CSS Filters

    CSS filter support recently landed within WebKit nightlies. CSS filters provide a method for modifying the rendering of a basic DOM element, image, or video. CSS filters allow for blurring, warping, and modifying the color...

  • 5 More HTML5 APIs You Didnât Know Existed

    The HTML5 revolution has provided us some awesome JavaScript and HTML APIs.  Some are APIs we knew we've needed for years, others are cutting edge mobile and desktop helpers.  Regardless of API strength or purpose, anything to help us...

Incredible Demos

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. :)

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

Use Code Editor