More To Love

Written By Aaron Newton, on Monday, March 9th 2009, 5:28pm

I know, sometimes when you look at the source code of MooTools you ask yourself, “How could this possibly be any better? Because it’s so awesome.” I am by and large always stumped by this question, as the code is so meticulously maintained by its authors.

Today, I have an answer. The only way to give you a better MooTools is to give you more of it. It’s that awesome. Today, we’re making MooTools awesomer.

We give you the new and improved MooTools More - the official plugin collection for MooTools. The plugins we are releasing today take the fifteen files previously in MooTools More and triple them. That’s three times the awesome!

What’s in it you ask? Well, let me tell you. The new and improved -more currently includes:

  • Class extensions including a Binds mutator, easier refactoring, chain pausing and more.
  • New Native extensions including more love for String and Array, plus a fully featured Date Native and a URI extension to make managing links downright fun.
  • More Element love with help for managing text selection and relative positioning (put this box’s lower right corner next to the upper right corner of that other box…)
  • Form love including a robust and extensible form validator and a class for displaying hint text over an input.
  • Extended Request functionality including JSONP support and Queuing.
  • Support for language localization for classes that output text (days of the month, months of the year, form validation errors, etc)

Oh, and we’ve already translated the text content in these new plugins (Date and FormValidator specifically) into half a dozen languages thanks to all the helpful folks in the MooTools-Lang user group (do you know a language other than English? Want to help? Here ya go).

I know, you can barely contain your excitement. Us too! Surely, you ask, there must be a catch to all this awesomeness. Does it cost four easy installments of $19.99? Shipping and handling? Must you sign an oath? Nay! It’s free for the taking.

But there are a Few Catches

First, today’s release is just the beta - the first release candidate (RC1). This means that you will certainly encounter problems, which would imply that it’s not 100% awesome (you are wrong! It is 100% awesome - when the beta is finished and we officially release it it will be 125% awesome).

But yes, you may encounter bugs. In this case, you will need to file it in the shiny new MooTools-More dedicated Lighthouse. Industrious types are encouraged to pull the repository from github and try and fix things themselves - helping hands are always appreciated.

In addition to this, the docs for the beta are in a different location (links at the bottom). The search in these docs still points to the google search for the current docs, so the new stuff won’t be returned if you use the search.

Also note that there is not a compatibility layer yet written for this release. There are only a handful of items from the previous files that were in MooTools More. For those of you using the Clientcide libraries, you’ll see a lot of familiar scripts on the list, and there are numerous changes between the versions on Clientcide and the versions here. You can see the list of breaking changes in the readme.

Enough! Give It To Me!!!

Ok, ok, you want links? Here you are:

How You Can Help

There are several things you can do to pitch in. First, you can run the tests in all the browsers you have access to. There are two types of tests:

Running through these in your browsers and reporting anything that seems wonky will help us tremendously. If you know a language that hasn’t yet had the translation written for Date or FormValidator, you can, as mentioned previously, jump into the MooTools-Lang group and help out with that.

More to Come

MooTools More is now it’s own official project which means its release schedule is no longer tied to MooTools Core. Once this release candidate is fully released (hopefully in the next week or so) expect to see new plugins arrive every week or two. Our objective is to quickly grow the plugins available here as well as address bugs in MooTools More constantly. We have a long list of functionality already lined up for future releases. This is only the beginning! If you want to get involved, read more on the MooTools More wiki.

Thanks

Special thanks go to the MooTools More team zilenCe (Christoph Pojer), devthought (Guillermo Rauch), David Walsh (er, David Walsh), and the numerous others who helped in the development of this release. Seriously, there were a lot of people who chipped in. You can too, if you like.

57 Responses to “More To Love”

  1. Colum says:

    I can’t wait till this is done! looks great! Keep up the great work. I am always impressed by mootools…

  2. Oskar Krawczyk says:

    Awesome! Tell me though, should we treat this as the 1.3 or 1.2.2 release?

  3. Oskar Krawczyk says:

    Ok, never mind, just noticed: 1.2.1

  4. aaron says:

    This is not the trunk - it’s MooTools More. The version numbers for -more are always going to be -, so the current release is 1.2.1-rc1. When it’s out of beta it will be 1.2.1-01. More’s version will increment (no dots) with each release (1.2.1-02, 1.2.1-03, etc). When MooTools core changes, the number will reset (1.2.2-01 or 1.3-01). This way you can tell which version of -core works with your version of -more. But the two are not coupled.

  5. David says:

    Sweet, I was wondering about development status. Glad to hear that the library that can handle my demands has even more awesome updates! Keep up the good work and awesomeness will continue to follow.

  6. shanghaikid says:

    great. i love it.

  7. Darren K says:

    Good work Aaron and everyone else! I’ve been watching the network graph and have really been impressed by the amount of effort and collaboration that has gone into the More project. It’s great to see all these great plugins make their way into an official release. Can’t wait to download stuff and test it out.

  8. Ryan says:

    very nice! Great job and a huge step in the right direction!

  9. Kevin says:

    Your math is flawed! Mootools More + three times that = FOUR times awesome! Don’t round your awesomes, you might lose one. :(

  10. Pieter says:

    Great work guys! Looks awesome!

  11. Richard says:

    Aaron, smart move breaking core and more into 2 separate efforts. A side benefit to enlarging the plugin library will likely be growth in the Mootools community, which would not exactly be a bad thing. Keep up the great work. Mootools is the most awesomest thing yet!

  12. aaron says:

    @kevin, I have corrected the post - you are correct. It’s FOUR times the awesome.

  13. Christoph Pojer says:

    @Richard: and expect a lot “more” to come!

  14. Michal says:

    Looks great: but I’ve not managed to download it! I click on the Download button in the form, but just the page http://www.mootools.net/getmore loads as a blank page. I’ve tried in Firefox 3 and Safari Mac.

  15. Andrew Moore says:

    Sounds like the Clientcide plugins are being merged in More… Most of the features above were already in the plugins.

  16. sheldon says:

    You are so full of yourself it seems you’re coding in the wrong language. Ever considered moving to the Ruby on Rails team?

  17. Timothy says:

    Amazing! You’ve included features I’ve been dying for, like OverText, Element.Forms, Date, Request.Queue and URI. I’ve actually written my own classes for each of these which I use very often, but I’m more than happy that MooTools has included this.

    It really is the year of the Moo.

  18. Luiz Jr. Fernandes says:

    Amazing! Thanks for all!

  19. aaron says:

    @Michal, it looks like there’s an issue with the YUI compressor. I’ll look into it this morning.

    @Andrew, the first batch here are mostly Clientcide stuff, yes, and expect more of the Clientcide libs to move over (not all of them), but we’ve already got new things in the pipeline that aren’t anywhere else and other things that are coming from other contributors. MooTools More is much more open, so it’s possible for anyone to get involved.

    @Sheldon, Is it not obvious that I’m playing around with this post? We spent several months preparing this release, and yes, we’re excited about it and proud of it. But we aren’t really that egotistical. Apologies if the irony we intended is not communicated well through the medium.

  20. aaron says:

    The YUI compressor issue is fixed.

  21. James says:

    Well done Aaron. You should be the next Steve Jobs when it comes to introducing awesome stuff. I like this one in particular: “Today, I have an answer. The only way to give you a better MooTools is to give you more of it. It’s that awesome. Today, we’re making MooTools awesomer”.

  22. MoonShadow says:

    Awesomeness at it fullest!

    I’ve been using the Clientcide plugins quite a bit, and I love the fact of them merging with Mootools-more. It’s making the most awesome Javascript library even “more” awesome!

    Great effort Aaron & Mootools core & more developers!

    Looking forward to the next releases!

  23. Mark Story says:

    Great work guys, very nice to see a great collection of plugins get even better.

  24. Dimitar Christoff says:

    awesome!

    any chance you could pre/postfix all the new functions in the rc_1 documentation? it would be handy to walk around, explore and test…

  25. aaron says:

    @Dimitar, what do you mean pre/postfix?

  26. Tim says:

    @aaron, I think Dimitar wants a list of the new functions/classes/methods that are implemented in this new More version.

    Personally I think that is not necassary, if you take 15 minutes of your time you can quickly take a glance at each class that’s in the Docs and look at the description/options, you can discover by yourself what’s in.

    Overall, great work MooTools team! I think we can now say that Mootools has kicked back! (and hard ;-) )

  27. aaron says:

    @Dimitar, there aren’t many changes to the existing classes (Drag, Sortables, etc) other than bug fixes. A few things were renamed (Accordion » Fx.Accordion for example). You can see this log of breaking changes in the readme as mentioned in the article). Everything else is new. The best list I can offer for that is the docs pages and the download page, which I think do a pretty good job of enumerating all the new items.

  28. cole says:

    keep up the good, no, great work guys

  29. Troy says:

    Thanks for all the work on this. There are some really great additions here. I look forward to see what’s coming!

  30. Laisvunas says:

    Congrats, that’s a great achievement!

    It’s amazing that there is such official plugin collection, but how about third party plugins?

    In an article which was published long ago it was promised to reopen Your scripts section. Mooforum is hardly enough for third party scripts; Mootools needs third party plugin repository which would be like that of jQoery.

  31. aaron says:

    @Laisvunas we are still working on a system to allow anyone to upload plugins. It’s something we work on in our “spare time” so it’s coming along somewhat slowly. We’ll also note that the new MooTools More is open for anyone to jump in and add plugins. We have outlined in the wiki (linked above) the steps required to get involved.

  32. ju1ius says:

    This is great ! Now the awesomeness would be to add a real UI Framework ! Why not based on mootools-art ?

  33. aaron says:

    @ju1ius - it’s on our roadmap. We’ll get there soon.

  34. SamGoody says:

    Congrats Aaron and the whole Mootools teams.

    This is just the greatest thing for the community that could be asked for, and I am looking forward to every step of it.

    ‘Been waiting for something like this for the longest time, and your execution is superb (as always)

  35. SamGoody says:

    One small q on allowing all to submit plugins: What will you do if two matching projects are uploaded that are coded completely differently? [eg. two different color pickers that are not compatible]

  36. Kevin says:

    Nooo Aaron, your math is still off, haha. Let’s take a closer look:

    “…fifteen files previously in MooTools More…”

    var MM = 15; // Mootools More

    “…and add quadruple them.”

    var newMM = MM + ( MM * 4 );

    “That’s four times the awesome!”

    if ( MM*4 == newMM ) // good math else // bad math

    The new Mootools More most definitely has three times the previous (15 vs 45). So your statement either needs to say “MooTools More and add double them. That’s three times the awesome!” or “MooTools More and triple them. That’s three times the awesome!” Add double or simply triple. :)

  37. aaron says:

    @Kevin, I totally misread all of that. I didn’t realize that I had the word “add” in there. Your previous post seemed to make perfect sense so I just updated without actually doing any math. Stupid math.

    @Sam I think it depends. Hopefully the team can agree on implementation of a feature, but it’s entirely possible that we’ll have two classes that do similar things. I could imagine two date pickers that are radically different from each other for instance. Ideally we’d only have one so we can build on top of things, but I’m open to the notion that there’s more than one valid way to accomplish a task. We’ll cross that bridge when we come to it, I suppose.

  38. mike says:

    Awesome! I can’t wait to try out all these new features. I have a few suggestions:

    The URI docs should clarify that saying new URI() snags the current URI.

    Also for the URI, I often use the ‘fragment’ part of the URI to hold variables (just like the ‘query’ part) that are specific to js. It allows to save page states that require js processing so you can have permalinks. (I currently use my own code I wrote that does this)

    In addition to the sum() function for Arrays, max() and min() functions might be handy too.

    Keep up the good work!

  39. aaron says:

    @mike I’ve added the fact that window.location is used by default. I don’t think it makes sense for this code to manage query strings within the fragment (as with ajax history for example) - that to me belongs squarely in your application logic. Array min and max might be useful, yes. I don’t want to add that in right now in the middle of our RC stage, but we’ll consider it for a future release.

  40. Killtek says:

    Aaron.. Ignore Sheldon, some people don’t have a sense of humor or are just plain jealous. Great job to you and your team!

  41. Laisvunas says:

    @ju1ius Your suggestion to base future Mootools official UI framework on virtually unknown mootools-art which even does not offer any downloads, seems strange.

    There are at least two well known and extensively developed UI frameworks based on MooTools - jxLIB and MochaUI. Why not base Mootools official UI framework on one or both of these libraries?

  42. Wolax says:

    That’s in fact great news and I’m looking forward to the stable release. But I don’t understand why the new ‘more’ is so much bigger in size!? I packed exactly the same things in as before with the old ‘more’ and its 4times the size now (80kb instead of 20kb)! Will this be reduced in the stable release?

  43. aaron says:

    @Laisvunas Mocha UI is really nice and we have a lot of respect for all that work. But MooTools has its own design principals and they are different than those for Mocha or jxLIB. Further Mocha is free to use but isn’t open sourced. It is a copyrighted work. jxLIB is all based on pngs and similar layout practices. MooTools ART was sort of a draft for what we’re working on now. At its heart, it’s a MooTools-like API for canvas, which is just very different than Mocha or jxLIB. That said, we love that other people are out there releasing code for UI work. We hope to launch a plugin forge here sometime this year that will allow these authors to promote their work on MooTools.net.

    @Wolax, After looking into it, it looks like the download page has a bug - it’s including all of MooTools Core regardless of whether or not you want it. I’ll try and address that quickly.

  44. Jacob says:

    This is fantastic - I’m thrilled to see the form manipulation plugins, especially the setting caret/cursor extensions… This should make my autocomplete + autosuggest work soooo much easier!! I can dump all my crazy workarounds and go the MooTools way! Thank you so much!

  45. Wolax says:

    Thats good to know! Glad its not actually gown so much which would be horrible! Any success in addressing the issue yet? Thanks to everyone who is working on this!

  46. aaron says:

    Haven’t had time to work on it yet, but perhaps tonight.

  47. littlepig says:

    Hi, I come back now. I found a project in google about mootools’ doc. The URL is http://code.google.com/p/mootools-doc-cn/. It just makes the doc into chinese. If you like it, I hope you can improve it and put it into mootools.net worldwild worldsite.Thank so much.

  48. Wolax says:

    Ok just found another bug with the downloader. When getting the compressed version or -more, the first line (copyright line) is not marked as comment (no //). So it leads directly to an error!

  49. Stratboy says:

    Another step filling the gaps with jQuery. I’m very happy. :)

  50. DrMushroom says:

    I use mootools since the early version and I really love it for many reasons. It’s modular, compact, Objet Oriented and it rocks. But i dont understand the recent move of the More. If we consider the More as an extension of the Core (and this is probably the point), I understand all extensions to be in it but what about tips, accordion or slider that are more look like ui components? And now the FormValidator that is going to make the More even bigger! In my opinion, MooTools should stay compact and by the way, will be more maintainable. Less is More, isn’t it?

  51. aaron says:

    @DrMushroom, More is modular, which means that you can take only the parts you need. If you need a FormValidator, we have one now (you can always write your own!). If you need Accordion, it’s still there. It’s up to you how large your download is.

  52. ben says:

    Nice work.

    It’d be nice if Mootools developers could link to the “more download” page with the required parts auto-checked rather than having to list all of ‘em in a document.

  53. aaron says:

    @ben - what required parts? You choose which parts you want and the builder includes everything you need… The whole point is that you only download what you need.

  54. fakedarren says:

    Love it. Now, just to get my head round GitHub…

    I’m just one of many that have got a text editor based on the original Inviz version - is this something that could make it into More eventually? If so, I’m more than happy to contribute my code for perusal.

    Big thanks to all the MooTools developers too for the awesome framework - and now it’s even awesomer!

    Mooooooooo!

  55. aaron says:

    In theory, yes, an editor is something that we should add to -more. Adding plugins to the repository means more than just sending us code. At the moment, we’re looking for people who want to get involved - and that means writing docs, tests, fixing bugs, and submitting plugins. If you want to get involved, all you gotta do is dive in. Check out git, fix bugs, run tests, whatever.

  56. asvanu says:

    Thank you so much for this MooTools. I am so happy!

  57. referencement says:

    The form validator rocks ! It’s exactly what I was looking for