No Sizzle For Moo
The MooTools dev team discussed the whole sizzle thing at great length over the past few days. I posted about it quite a bit and there was a lot of talk on the Google Group for MooTools users. I’ll admit that when I first read John Resig’s email I was very open to the idea and thought it was worth considering, though I was a bit conflicted. I posted my thoughts and talked with Valerio and Tom about it at length.
In the end, I felt that it was too early to tell if it was a good idea and thought it best if we waited to see what the Dojo team would do with it.
Then Valerio posted this well-reasoned post about it and completely convinced me that it’s not the right move for MooTools. I agree with him 100% at this point.
There are several reasons why a project like MooTools would never include a third party library like Sizzle in its codebase. First of all, we already have a very fast, very manageable and solid CSS selector engine in place. I worked on it a lot, I know how it works, and I know that if it ever needs a fix, every MooTools collaborator can just git it and fix it, right away. Every Mootools collaborator knows how MooTools works, what our code practices are, and how to submit either a patch (if they don’t have Git credentials), or patching the code themselves.
Follow @clientcide on twitter to get notified of new posts.
To follow me personally on twitter, follow @anutron.
December 5th, 2008 at 11:57 am
I’m disappointed but not surprised. I saw this comment on the other post:
“I’m glad to hear your good decision of keeping Mootools pure”
In our field (and most really) it feels very much like original invention an purity is dead. It is impossible to create something new from scratch that doesn’t rely on the work of others. For example, is MooTools impure if it makes calls to console.log. I believe working together let’s us stand on the shoulders of giants to create great things.
Most new great ideas are thought of in parallel by others… maybe I should blog about the death of original invention.
Regardless, it feels like people are fighting over the purity of a brand and community and saying they don’t want to work with other communities. At Dojo we’re a bit different… we like mixing things up, working with others, and being inclusive.
If this was my decision alone to make, I would also be tempted to say no to John for the same reasons as Valerio, but I think collaborating is in the best interests of the Dojo Community and web developers all around.
-Dylan
December 5th, 2008 at 12:17 pm
Welcome Dylan! Glad to see you’ve finally warmed to OpenId…
Anywho, I think the issue here is not that we don’t want to contribute or that we don’t borrow from others. I think it really comes down to three things:
As Tom has said previously, we really appreciate all the work that all the frameworks have brought out and we continue to learn from them. All the frameworks are different in ways that come down to philosophy and ours, at least for now, doesn’t allow for us to include portions of another framework in our own.
This has been a great discussion though. People sometimes imply that the frameworks are at war, but as I see it, all the talk around this has been quite reasoned and civil. If we can’t set the example that we’re willing to collaborate explicitly, at least we’re setting the example that we can get along even if we disagree.
It’s been a pleasure seeing this discussion develop. I only wish that we could talk about other topics and design challenges with such depth and care without needing something like this big topic to spur us along…
December 5th, 2008 at 6:53 pm
Dylan,
I’m the one who left the comment that you referred to. Perhaps you misunderstood my comment, or perhaps you got mixed up between adopting ideas vs adopting code bases. Adopting great ideas has and always will be a great idea, but to take another code base or as Valerio uses the term “outsource” part of your framework to it, is not always in the best interest of one’s framework.
As you said ‘Most new great ideas are thought of in parallel by others…”, and I couldn’t agree more. Take for example the idea of inheritance or the idea of wrapping the XmlHttpRequest in order to make an Ajax request. As soon as JavaScript frameworks start to exist, every framework have their own way of doing these two things. This is, in my opinion, how every framework copies each other ideas or they might happen in parallel, I don’t know. But by your argument, we should pick this code base from A because it does its job best and every framework should include it, and take the code base from B, and so on.
I also hear the argument that Sizzle is flexible and extensible, so in theory Mootools can include it and add custom code to it. Likewise, Dojo can and so can another framework XYZ. If this does happen, let’s fast forward 2 years or so, and Mootools, Dojo and XYZ can potentially end up with completely different codes. But isn’t this where we start?
I am finally convinced of the following:
1. Sizzle is great (Of course it got to be, it’s written by John)
2. Sizzle is a good fit for Dojo. I am convinced by you.
3. But not a good fit for Mootools, at least not for now.