<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Sizzle Power in MooTools?</title>
	<atom:link href="http://www.clientcide.com/industry-news/sizzle-power-in-mootools/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.clientcide.com/industry-news/sizzle-power-in-mootools/</link>
	<description>Making stuff work on the other side of the request.</description>
	<lastBuildDate>Tue, 05 Jan 2010 18:16:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Henrik Lindqvist</title>
		<link>http://www.clientcide.com/industry-news/sizzle-power-in-mootools/comment-page-1/#comment-31973</link>
		<dc:creator>Henrik Lindqvist</dc:creator>
		<pubDate>Thu, 12 Feb 2009 01:03:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.clientcide.com/?p=552#comment-31973</guid>
		<description>The whole point of creating &quot;toolkits&quot; is to promote code reuse within it. So why relying on others to implement such a vital part. And writing a good selector engine is quite trivial. Look at the &lt;a href=&quot;http://llamalab.com/js/Selector.js&quot; rel=&quot;nofollow&quot;&gt;source&lt;/a&gt; for our &lt;a href=&quot;http://llamalab.com/js/selector/&quot; rel=&quot;nofollow&quot;&gt;selector&lt;/a&gt; implementation. It&#039;s both smaller and faster than most.</description>
		<content:encoded><![CDATA[<p>The whole point of creating &#8220;toolkits&#8221; is to promote code reuse within it. So why relying on others to implement such a vital part. And writing a good selector engine is quite trivial. Look at the <a href="http://llamalab.com/js/Selector.js" rel="nofollow">source</a> for our <a href="http://llamalab.com/js/selector/" rel="nofollow">selector</a> implementation. It&#8217;s both smaller and faster than most.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: MooTools: No Sizzle &#124; Garrick Cheung</title>
		<link>http://www.clientcide.com/industry-news/sizzle-power-in-mootools/comment-page-1/#comment-31657</link>
		<dc:creator>MooTools: No Sizzle &#124; Garrick Cheung</dc:creator>
		<pubDate>Wed, 24 Dec 2008 08:15:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.clientcide.com/?p=552#comment-31657</guid>
		<description>[...] the beginning, before Valerio posted about Sizzle. Aaron Newton posted about pros/cons of MooTools implementing Sizzle, followed by another post, &#8220;Dojo’s Dylan Schiemann and jQuery’s John Resig On My Sizzle [...]</description>
		<content:encoded><![CDATA[<p>[...] the beginning, before Valerio posted about Sizzle. Aaron Newton posted about pros/cons of MooTools implementing Sizzle, followed by another post, &#8220;Dojo’s Dylan Schiemann and jQuery’s John Resig On My Sizzle [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: diego</title>
		<link>http://www.clientcide.com/industry-news/sizzle-power-in-mootools/comment-page-1/#comment-31627</link>
		<dc:creator>diego</dc:creator>
		<pubDate>Fri, 05 Dec 2008 22:57:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.clientcide.com/?p=552#comment-31627</guid>
		<description>John,
my NWMatcher is not a major library, but it implements &quot;document-order&quot; multiple selectors and I don&#039;t feel decimated by speed I believe many others feel decimated...

My selector engine is probably not so popular but it also implements a &quot;match()&quot; method based on CSS selectors compiled to Javascript functions which are then cached for the lifespan of the page. With time it would be clear that this is the most needed method; &quot;select()&quot; and &quot;$$&quot; are the past...and made our life difficult.

Many of the libraries still do not realize a &quot;document-order&quot; problem exists !!!

I respect the decision of the Mootools library, everybody love his way of doing things and want to keep their brand on it. To really share knowledge it is better to pass the information and let people see if it is worth introducing it in their project or skip it.

Everybody made his piece of work in this area and improved the general feeling.

Peace &amp;&amp; Love

--
Diego</description>
		<content:encoded><![CDATA[<p>John,<br />
my NWMatcher is not a major library, but it implements &#8220;document-order&#8221; multiple selectors and I don&#8217;t feel decimated by speed I believe many others feel decimated&#8230;</p>
<p>My selector engine is probably not so popular but it also implements a &#8220;match()&#8221; method based on CSS selectors compiled to Javascript functions which are then cached for the lifespan of the page. With time it would be clear that this is the most needed method; &#8220;select()&#8221; and &#8220;$$&#8221; are the past&#8230;and made our life difficult.</p>
<p>Many of the libraries still do not realize a &#8220;document-order&#8221; problem exists !!!</p>
<p>I respect the decision of the Mootools library, everybody love his way of doing things and want to keep their brand on it. To really share knowledge it is better to pass the information and let people see if it is worth introducing it in their project or skip it.</p>
<p>Everybody made his piece of work in this area and improved the general feeling.</p>
<p>Peace &amp;&amp; Love</p>
<p>&#8211;<br />
Diego</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sizzled off by MooTools &#124; Read.WhoCouldDiz.Be</title>
		<link>http://www.clientcide.com/industry-news/sizzle-power-in-mootools/comment-page-1/#comment-31624</link>
		<dc:creator>Sizzled off by MooTools &#124; Read.WhoCouldDiz.Be</dc:creator>
		<pubDate>Fri, 05 Dec 2008 12:07:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.clientcide.com/?p=552#comment-31624</guid>
		<description>[...] made a public statement on the project&#8217;s blog. Even Aaron Newton, former CNET developer, brought a few pros and cons around the new CSS selector [...]</description>
		<content:encoded><![CDATA[<p>[...] made a public statement on the project&#8217;s blog. Even Aaron Newton, former CNET developer, brought a few pros and cons around the new CSS selector [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: No Sizzle For Moo &#187; Clientcide (Formerly CNET&#8217;s Clientside)</title>
		<link>http://www.clientcide.com/industry-news/sizzle-power-in-mootools/comment-page-1/#comment-31623</link>
		<dc:creator>No Sizzle For Moo &#187; Clientcide (Formerly CNET&#8217;s Clientside)</dc:creator>
		<pubDate>Fri, 05 Dec 2008 06:01:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.clientcide.com/?p=552#comment-31623</guid>
		<description>[...] 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&#8217;ll [...]</description>
		<content:encoded><![CDATA[<p>[...] 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&#8217;ll [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dojo&#8217;s Dylan Schiemann and jQuery&#8217;s John Resig On My Sizzle Post &#187; Clientcide (Formerly CNET&#8217;s Clientside)</title>
		<link>http://www.clientcide.com/industry-news/sizzle-power-in-mootools/comment-page-1/#comment-31621</link>
		<dc:creator>Dojo&#8217;s Dylan Schiemann and jQuery&#8217;s John Resig On My Sizzle Post &#187; Clientcide (Formerly CNET&#8217;s Clientside)</dc:creator>
		<pubDate>Thu, 04 Dec 2008 18:53:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.clientcide.com/?p=552#comment-31621</guid>
		<description>[...] on my previous post, John Resig wrote a lengthy response to my post. I&#8217;m going to quote it and respond to it here so I can insert my comments after his various [...]</description>
		<content:encoded><![CDATA[<p>[...] on my previous post, John Resig wrote a lengthy response to my post. I&#8217;m going to quote it and respond to it here so I can insert my comments after his various [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Implement Other Selector Engines (e.g. Sizzle or Peppy) into MooTools? &#124; Garrick Cheung</title>
		<link>http://www.clientcide.com/industry-news/sizzle-power-in-mootools/comment-page-1/#comment-31620</link>
		<dc:creator>Implement Other Selector Engines (e.g. Sizzle or Peppy) into MooTools? &#124; Garrick Cheung</dc:creator>
		<pubDate>Thu, 04 Dec 2008 09:06:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.clientcide.com/?p=552#comment-31620</guid>
		<description>[...] a selector engine instead of using their own. Apparently I was not alone in this thought as Aaron Newton has posted his thoughts and pros/cons. Here&#8217;s my two [...]</description>
		<content:encoded><![CDATA[<p>[...] a selector engine instead of using their own. Apparently I was not alone in this thought as Aaron Newton has posted his thoughts and pros/cons. Here&#8217;s my two [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ejohn.org/</title>
		<link>http://www.clientcide.com/industry-news/sizzle-power-in-mootools/comment-page-1/#comment-31618</link>
		<dc:creator>ejohn.org/</dc:creator>
		<pubDate>Thu, 04 Dec 2008 07:09:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.clientcide.com/?p=552#comment-31618</guid>
		<description>Just to reply to - and clarify - you &#039;Con&#039; points:

    * CSS selectors are, by and large, all about as fast as the next now. There’s not much benefit to be had as far as speed is concerned.

While I may agree that selectors aren&#039;t going to get much faster - the thing that is changing is the standardization of those selectors. This comes in two forms:
1) From standards bodies, like the W3C, with new methods (for example, querySelectorAll). If the libraries collaborate on a single engine it becomes fundamentally much easier for these new methods to come into being and propagate. It&#039;s taking far too long for querySelectorAll to reach all of the current libraries - it should be happening much faster.

2) In custom selectors. There is no standardization on custom CSS selectors that libraries have. For example - there is the common custom selector [attr!=value]. What does this mean? Is it equivalent to :not([attr=value])? If that&#039;s the case then it&#039;ll match elements that don&#039;t even have the attribute to begin with. Maybe it should be equivalent to [attr]:not([attr=value]). But, again, that&#039;s not standardized anywhere. Having a unified engine allows us to standardize this in one place with a de facto implementation.

Frankly, not using Sizzle will mean that MooTools will always be playing a game of catch-up. Right now jQuery, Prototype, Dojo, and YUI are all looking at using the library - that only leaves one odd library out. I&#039;m not attempting to put undue pressure on your team - it&#039;s absolutely your decision - but you&#039;ll definitely be in a position, if all the libraries use Sizzle, of constantly trying to catch-up to what is implemented in the de facto implementation.

    * Sizzle caches selector results, which we could add to MooTools if we liked and we might, but perhaps this isn’t something everyone wants.

That&#039;s something that we&#039;ve been discussing amongst the different implementers. I see no problem with this piece of code being made optional.

    * The MooTools coding philosophy is definitely set on having extensible code. Anyone can author custom selectors for the MooTools selector engine and the code in the engine is very clean and understandable to any MooTools user. We’d loose some of this if we moved to Sizzle.

This is the point that I&#039;m most confused about. I will put money down, right now, that Sizzle is more extensible than any other CSS selector engine in any of the major libraries - MooTools included. jQuery selectors have been, traditionally, very extensible but I went far beyond that with Sizzle&#039;s implementation and you can extend any selector in virtually any direction. If there are any specific extension concerns I&#039;d love to address them but as far as I know there really aren&#039;t any.

    * There’s something to be said about autonomy. By having its own selector engine, MooTools can add functionality and manage its own needs.

You can absolutely add your own functionality to Sizzle - in fact a number of libraries are already doing it. For example jQuery has :hidden and :visible - but keeps them within its engine - they are not a part of Sizzle. Both Prototype and MochiKit are looking to do this, as well. That&#039;s the beauty of the extensibility here. Such an extensible architecture means that you&#039;ll be able to add your snap-in your own functionality.

    * While adding Sizzle might be a nice gesture to the community, illustrating that we can all get along together, it may not offer any other big benefits (if you don’t consider any of the Pros above big benefits).

I&#039;m not sure what is being referred to here. It&#039;s important to note that it&#039;s not just illustrating that we can get along together - it&#039;s actually getting along together. A lot can be said for standardization. If there wasn&#039;t some form of standardization between browser vendords, for example, we&#039;d be in a much rougher place right now.

    * One could argue that healthy competition is the reason we have fast CSS engines like Sizzle in the first place. If we all consolidate then maybe that innovation slacks off. One could counter that by saying that selector engines are so fast now that it’s really quite negligible and that any likely speed increase won’t come through further iteration on the JavaScript.

Two points:
1) You&#039;re assuming that the only driving force of performance improvements is a specific outside force (such as another implementation). But you&#039;re forgetting the biggest outside force of all: The users. In the jQuery project we&#039;ve been making constant performance improvements to a variety of methods and components - because it&#039;ll make the code faster for the users - NOT because there&#039;s some 3rd party test suite that demands we have faster numbers. With so many minds at the table (all the major libraries) it&#039;ll mean that this library will be in front of the majority of JavaScript users, in one way or another. It will be compelled to become faster.

2) While the competition has been good, it also has its ugly side. For example, not a single major JavaScript library implements document-order multiple selectors (e.g. returning &quot;h1, h2, h3&quot; in the order in which they&#039;re in the document - not all h1s followed by all h2s, etc.). No library does this because they would get instantly decimated on SlickSpeed. It&#039;s going to be really important, going forward, that we start to match the published specifications (Selectors API) more closely, otherwise we are going to confuse users and break sites. Competition certainly hasn&#039;t helped libraries to progress in this nature.</description>
		<content:encoded><![CDATA[<p>Just to reply to &#8211; and clarify &#8211; you &#8216;Con&#8217; points:</p>
<p>    * CSS selectors are, by and large, all about as fast as the next now. There’s not much benefit to be had as far as speed is concerned.</p>
<p>While I may agree that selectors aren&#8217;t going to get much faster &#8211; the thing that is changing is the standardization of those selectors. This comes in two forms:<br />
1) From standards bodies, like the W3C, with new methods (for example, querySelectorAll). If the libraries collaborate on a single engine it becomes fundamentally much easier for these new methods to come into being and propagate. It&#8217;s taking far too long for querySelectorAll to reach all of the current libraries &#8211; it should be happening much faster.</p>
<p>2) In custom selectors. There is no standardization on custom CSS selectors that libraries have. For example &#8211; there is the common custom selector [attr!=value]. What does this mean? Is it equivalent to :not([attr=value])? If that&#8217;s the case then it&#8217;ll match elements that don&#8217;t even have the attribute to begin with. Maybe it should be equivalent to [attr]:not([attr=value]). But, again, that&#8217;s not standardized anywhere. Having a unified engine allows us to standardize this in one place with a de facto implementation.</p>
<p>Frankly, not using Sizzle will mean that MooTools will always be playing a game of catch-up. Right now jQuery, Prototype, Dojo, and YUI are all looking at using the library &#8211; that only leaves one odd library out. I&#8217;m not attempting to put undue pressure on your team &#8211; it&#8217;s absolutely your decision &#8211; but you&#8217;ll definitely be in a position, if all the libraries use Sizzle, of constantly trying to catch-up to what is implemented in the de facto implementation.</p>
<p>    * Sizzle caches selector results, which we could add to MooTools if we liked and we might, but perhaps this isn’t something everyone wants.</p>
<p>That&#8217;s something that we&#8217;ve been discussing amongst the different implementers. I see no problem with this piece of code being made optional.</p>
<p>    * The MooTools coding philosophy is definitely set on having extensible code. Anyone can author custom selectors for the MooTools selector engine and the code in the engine is very clean and understandable to any MooTools user. We’d loose some of this if we moved to Sizzle.</p>
<p>This is the point that I&#8217;m most confused about. I will put money down, right now, that Sizzle is more extensible than any other CSS selector engine in any of the major libraries &#8211; MooTools included. jQuery selectors have been, traditionally, very extensible but I went far beyond that with Sizzle&#8217;s implementation and you can extend any selector in virtually any direction. If there are any specific extension concerns I&#8217;d love to address them but as far as I know there really aren&#8217;t any.</p>
<p>    * There’s something to be said about autonomy. By having its own selector engine, MooTools can add functionality and manage its own needs.</p>
<p>You can absolutely add your own functionality to Sizzle &#8211; in fact a number of libraries are already doing it. For example jQuery has :hidden and :visible &#8211; but keeps them within its engine &#8211; they are not a part of Sizzle. Both Prototype and MochiKit are looking to do this, as well. That&#8217;s the beauty of the extensibility here. Such an extensible architecture means that you&#8217;ll be able to add your snap-in your own functionality.</p>
<p>    * While adding Sizzle might be a nice gesture to the community, illustrating that we can all get along together, it may not offer any other big benefits (if you don’t consider any of the Pros above big benefits).</p>
<p>I&#8217;m not sure what is being referred to here. It&#8217;s important to note that it&#8217;s not just illustrating that we can get along together &#8211; it&#8217;s actually getting along together. A lot can be said for standardization. If there wasn&#8217;t some form of standardization between browser vendords, for example, we&#8217;d be in a much rougher place right now.</p>
<p>    * One could argue that healthy competition is the reason we have fast CSS engines like Sizzle in the first place. If we all consolidate then maybe that innovation slacks off. One could counter that by saying that selector engines are so fast now that it’s really quite negligible and that any likely speed increase won’t come through further iteration on the JavaScript.</p>
<p>Two points:<br />
1) You&#8217;re assuming that the only driving force of performance improvements is a specific outside force (such as another implementation). But you&#8217;re forgetting the biggest outside force of all: The users. In the jQuery project we&#8217;ve been making constant performance improvements to a variety of methods and components &#8211; because it&#8217;ll make the code faster for the users &#8211; NOT because there&#8217;s some 3rd party test suite that demands we have faster numbers. With so many minds at the table (all the major libraries) it&#8217;ll mean that this library will be in front of the majority of JavaScript users, in one way or another. It will be compelled to become faster.</p>
<p>2) While the competition has been good, it also has its ugly side. For example, not a single major JavaScript library implements document-order multiple selectors (e.g. returning &#8220;h1, h2, h3&#8243; in the order in which they&#8217;re in the document &#8211; not all h1s followed by all h2s, etc.). No library does this because they would get instantly decimated on SlickSpeed. It&#8217;s going to be really important, going forward, that we start to match the published specifications (Selectors API) more closely, otherwise we are going to confuse users and break sites. Competition certainly hasn&#8217;t helped libraries to progress in this nature.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron N.</title>
		<link>http://www.clientcide.com/industry-news/sizzle-power-in-mootools/comment-page-1/#comment-31617</link>
		<dc:creator>Aaron N.</dc:creator>
		<pubDate>Thu, 04 Dec 2008 04:55:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.clientcide.com/?p=552#comment-31617</guid>
		<description>There are some good replies to this over in the Google Group:
http://groups.google.com/group/mootools-users/t/7396f0f8a17fd856</description>
		<content:encoded><![CDATA[<p>There are some good replies to this over in the Google Group:<br />
<a href="http://groups.google.com/group/mootools-users/t/7396f0f8a17fd856" rel="nofollow">http://groups.google.com/group/mootools-users/t/7396f0f8a17fd856</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
