Friday, December 5th, 2008
Valerio Proietti has written a thoughtful post on why MooTools won’t use Sizzle (and tries to argue why other libraries shouldn’t).
He cites the advantages of having one code base that your project can tweak at will, and competition being a good thing to move things forward:
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.
I don’t expect every library will drop its own engine and plugin Sizzle right away. However, if done correctly, Sizzle can be an area of collaboration. If it becomes “John’s Library” that is one thing, but you will note that there have already been patches from the Prototype folks and maybe others. Sizzle could be a playground for innovation itself.
I believe by collaborating on core items like the CSS engine everyone benefits. It wouldn’t feel “less MooTools” as Valerio cites, because it is hidden. We see this across industries. People come together to work on infrastructure pieces, and then go off and offer value adds and different APIs and ways of looking at things. Right now our Ajax libraries are duplicating effort. Imagine if Sizzle doesn’t become used by many engines in the future? Maybe it could be included in browsers, and optimized in some way. Who knows. Either way, I think it is a fine experiment that I am excited to see, and at the same time I value Valerio’s thoughts, and that is why it is great that he has the choice to not use it :)
What do you think?
Posted by Dion Almaer at 10:30 am