This is a little late.. I had forgotten to post this up on Dec. 7, 2008.
Haven\’t heard? Valerio Proietti of MooTools posted on their blog that Sizzle will not be implemented/adopted and reasons why MooTools, and other frameworks besides Dojo and jQuery, should not.
It Begins: Sizzle or not to Sizzle
Let me start from the beginning, before Valerio posted about Sizzle. Aaron Newton posted about pros/cons of MooTools implementing Sizzle, followed by another post, \”Dojo’s Dylan Schiemann and jQuery’s John Resig On My Sizzle Post\”. Dylan cleared up some info about the situation over at Dojo and John responded to Aaron\’s initial , where Aaron proceeded to respond in this post. Both of Aaron\’s posts are really good reads. I found he played a good devils advocate in his first post. His second post… is where things got interesting.
I know Aaron has said it again and again that we as developers and framework supporters are not \”at war\” with each other and the enemy is really the browser. I, too, believe that, yet, as I read through, it felt like a fight. Not the yelling/screaming sort but more like two very intelligent people, who respect each other, having a heated debate with a few \”fightin\’ words\” thrown in the mix. It was really good because I was able to see two points of views.
The Final Word: No Sizzle
On Thursday, December 4th 2008, Valerio responded to the whole thing. You can check the whole thing out here. But the main point is:
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.
His entire post reaffirmed my opinon that MooTools should not implement Sizzle.
I really like the part where Valerio setup a \”true comparison between engines, instead of frameworks and engines\”. How you ask?
In an effort to test the true efficiency of our CSS selectors engines, I have made a modification to SlickSpeed, so that it runs every test only once, and a couple of modifications to the MooTools code. This special testing version of MooTools no longer “extends†the resulting nodes (I did that by simply adding a method that passes an optional parameter to the default function getElements, as I cannot pass parameters using SlickSpeed), and it uses querySelectorAll where available, just like Sizzle does.
As Thomas Aylott commented (which was an awesome response!) in Valerio\’s post, I too approve this message. Better get over to Valerio\’s post because there\’s a lot of good comments too.
Thanks Valerio.
The reasoning is definitely straight forward and relevant. Assuming widespread integration, however, I’d be curious about the possibility of native implementation of the library in various browsers over time.
Hey, thanks for the kind comment over at http://blog.narcvs.com/?p=43 – I hope you found it interesting stuff!
Cheers,
Marcus