MooTools in 2009 in Retrospect, Thoughts on 2010 and Beyond

Friday, January 1st, 2010 @ 3:51 pm | filed under: Deep Thoughts

At the beginning of 2009, MooTools was a single thing – one library maintained by maybe 5 or 6 people who actively pushed code into it. It’s hard to reconcile this with where it is now. Let’s see, first, MooTools was split into two in February – MooTools Core and MooTools More. The principal developer, Valerio Proietti (the creator of MooTools) focused most of his energy on MooTools Core with the help of several other developers, and I’ve focused most of my efforts on MooTools More, the official plugins for the library. While Valerio and others continue to refine the core, the -more team has brought the number of plugins for MooTools from around a dozen to nearly sixty.

Part of what changed was our active recruitment for people to be involved in our development community. Our developer mailing list went from about a dozen people on the mailing list with 4-6 people actively pushing code into MooTools to around 50 developers on our mailing list with somewhere around 15-20 people actively pushing code. These numbers tell part of the story; of tremendous growth – as much as 400-500%.

At the same time, there have been a lot of new things happening that may be slightly off your radar. For instance, a MooTools user named Piotr Zalewa showed up one day out of nowhere with a paste-bin app for MooTools that lets you create stand alone working code examples with HTML, CSS, and JavaScript which he launched at http://mooshell.net. Immediately upon joining the developer list he started adding features and working with others on the list to make it better and better and the result has been phenomenal. The usefulness of our user mailing list has gone up dramatically as users show up asking questions with working examples (or, more often, broken ones that they need help with). Other users can edit the shell and save a new version, responding with a link that shows exactly how to solve the problem. Daily we see how MooShell has affected our ability to help our users and we’re happy that MooShell is now an official MooTools project. Expect to see these working demos in our documentation early this year (to a demo of this in action just scroll down to the “Demo” section here).

There are a number of other new additions to the library that are still somewhere between pre-alpha up to beta states. There’s the Depender application that lets you build libraries on the fly. MooTools ART, a canvas adapter for MooTools, continues to come along. Slick, MooTools’ new selector engine is in testing phase and we hope to see it released early in 2010. We just released the MooTools 1.1 to 1.2 Upgrade Helper which should help those still using 1.1 to adopt the current release. MooTools 2.0 is still under heavy development, but we’ll be releasing MooTools 1.3 early this year with some new features. Even stuff that we don’t release, like a new search engine for mootools.net.

And then there’s the MooTools Forge, our new user-created plugin catalog. The Forge alone would be enough for me to call 2009 a big year for MooTools. It is absolutely what MooTools was really missing. Developer Guillermo Rauch cranked out a slick bit of technology that closely integrates with Github and makes it easy for developers to update and maintain their plugins. In only a month or so there already 100 plugins in there with more added daily.

All of these things, this proliferation of output and creativity, stem from one small change that happened early in the year. Something that in many ways no one outside our developer community would know about or even have noticed: MooTools went from being the work and property of one person to being a project owned by its community. For the roughly two years previous to 2009 that MooTools was around, it was developed almost entirely by Valerio. It’s true that other people, such as myself, contributed to the work with Valerio as the gatekeeper. The MooTools code has always been elegant and easy on the eyes to actually look at, and this grooming was a product of that single guardian who cared deeply that the code always be as clean and elegant as possible. It was uncommon for anyone to make a commit to the project without Valerio coming through and tidying it up, always making it just a little better and in the process teaching us how to be better developers.

In February of 2009, the first little step happened with the split of MooTools Core and MooTools More. The code in -more is still methodically groomed and maintained, but not by Valerio. The -more team does this service for each other, each checking over the others’ work and making it a little better, a little leaner. As we actively recruited people into the developer list, we had more and more people working on different things. Selector engines, paste-bin applications, plugin libraries, canvas adapters, a search engine for mootools.net, test frameworks, and more; it all became far too much for one individual, even two or three, to be the gatekeepers.

At my job at Cloudera, I have the privilege of working with Doug Cutting, who brought Lucene, Nutch, and Hadoop out through the Apache Foundation. Doug spent a bit of time with us talking about how Apache develops open source software and after a few weeks of work we produced a founding document for how MooTools projects will be developed and governed. This document, our “charter” is influenced heavily on Apache’s processes, though not as rigid as we don’t have their scale issues (yet!), but it’s had a remarkable influence on our development team. All the things I’ve listed in this lengthy post have sprung up as a result of this change. What started as a split (-core, to –more and -core) has now grown into a federation of projects that we govern as a group. And that federation of projects, that freedom to just make things happen, is now filtering out into our community with the Forge.

So when I look back on 2009 and ask myself what MooTools accomplished, I look at all the things we released, all the code we wrote, and all the new people contributing and think of those things as side effects. The thing that really happened in 2009, and it took all year to do it, was MooTools became a project owned by all of us. Valerio is still guiding it, but we’re no longer rate limited by his ability to pay attention to all we can create. And so projects move forward with their own teams, and plugins get released by enterprising individuals on the Forge, and users send us bug reports using MooShell to demonstrate the problem. All these things are spectacular. But what really happened was that (tiny at first) shift to belonging to everyone who contributes.

When I consider 2010, my mind is awash. In one year our team grew by several hundred percent and the number of projects being actively worked on did the same. Our community has better tools to share their work. 2010 is going to be less about MooTools itself and far more about what we, as a community, make with it. If 2009 was all about the MooTools developer community coming together and taking things to the next level, 2010 is going to be about our community of users, and the possibilities there are endless as far as I can tell.

So consider this a challenge, an open invitation. Surprise me.

10 Responses to “MooTools in 2009 in Retrospect, Thoughts on 2010 and Beyond”

  1. Fábio M. Costa Says:

    your post is simply awesome! It tells everything. Mootools is becoming better and better because of the great community it has. It’s awesome to see ppl on IRC and on the mailing list that really love this project, just like me and you!
    Congratulations everybody and happy new year!

  2. Jacob Gube Says:

    Aaron, great update! MooTools Forge was a much needed addition to the project; I’ve been slackishly taking my time to update and then contribute a plugin I wrote to the Forge, I really want to see it get bigger in 2010. MooTools Forge goes a long way towards not only having a centralized place to share plugins officially backed by the core devs, but also a collaborative way of improving existing user-contributed plugins. Truly unique and awesome.

  3. Daniel Lo Nigro Says:

    Nice update. I love MooTools! :D And I didn’t know about the Forge until you mentioned it. Will definitely have to check it out :)

  4. NKjoep Says:

    so… Happy New Year Aaron :)

  5. SamGoody Says:

    The decision to foster the community instead of alienating them couldn’t have come a moment too soon.

    This year was a great one for Moo – the best I could remember since the initial release year.
    But it’s nothing compared to where we can go as the community evolves.

  6. LJ Says:

    happy new year Aaron, and mootools developers too.
    Mootools is awesome and i hope will be more and more awesome in the future

    the Forge is useful too now, but in the future it can gone messy
    becouse we will have too many solutions for one problem, and many unproffessional things.
    i don’t know, maybe forge should be moderated a lot. or mark things like “recomended”, “unstable”,”trash”

  7. Aaron N. Says:

    Rather than put another burden on our over-taxed developer group, we’re more interested in giving users of these plugins the ability to share that kind of feedback. Expect some sort of “like/dislike” feedback mechanism in the future.

  8. SamGoody Says:

    A stackoverflow style rating system for plugins would be awesome. IMHO.

  9. Chafik Barbar Says:

    Aaron, we are all very grateful to you and the mootools team for all of your hard work. in 2010, maybe we should all consider a get together for the mootools community to celebrate all of the success.

  10. Aaron N. Says:

    I’m all for it, but that means getting people who live all over the globe to travel and spend money. I’m reluctant to expect that of people.