原文地址:http://www.kxbd.com/article.asp?id=240

几天没上ajaxian.com,今天登录一看,就看到了这篇新闻:MooTools and Sizzle。

大意是说Mootools的开发团队宣布不会在Mootools框架中加入Sizzle,并建议其他JS框架也不要采用。

那么,Sizzle又是什么来头,竟然让Mootools团队发布如此声明,于是我花了一下午时间把他们之间的恩怨大致了解了下。

事件相关人物:
Jhon Resig:Jquery创始人,最初起家就是CSS selector
Valerio Proietti:Mootools的老大
Aaron Newton:Mootools 的虔诚布道者

原来Sizzle是John Resig写的一个CSS selector engine,在前不久的一篇新闻里有提到,Dojo正在投票是否将采用Sizzle作为CSS selector engine。这篇新闻还提到有一大批知名的JS框架正在考虑或已经采用了Sizzle,新闻的语气让我感觉JS框架开发似乎从此走进了一个新时代。

在这新闻的评论里,Aaron Newton发表了一篇文章,表达了一些不同的看法,并在文章中列举了采用Sizzle的好与不好之处,很快,John Resig就在这文章评论里逐条对不好之处进行了反驳或者辩解。光从这篇文章来说,我认为Aaron Newton给我感觉还是很平和的,虽然他们俩前不久就交锋过一次,那一次,Aaron Newton写了一篇我非常欣赏的文章,是什么让Mootools如此不同?

但Jhon Resig的回复中有一段话就让我感觉有咄咄逼人的意味了:“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’m not attempting to put undue pressure on your team - it’s absolutely your decision - but you’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.”

我感觉就是在说,你们不用也行,不用就等着做一个过时的老怪物吧!永远在我们屁股后面吃灰吧!

于是,Aaron Newton又写了一篇文章来回复Jhon Resig。最后他的结论是:"My final thoughts are that MooTools could benefit from Sizzle and being a consumer of and contributor to this common layer for all the frameworks. But there aren’t that many compelling reasons to do this right now. If it were my choice (and it most certainly isn’t) I’d be inclined to take a wait-and-see approach. If Dojo adopts the project (did that vote already pass? I’m assuming it will) then I’d want to see what Sizzle looks like on the next release. I know John will continue to be a big contributor but by handing it over to Dojo - an awesome move I think - he’s basically saying that everyone should own it. I want to see what it looks like when everyone does. Maybe then the benefits will be much more clear to me.”

大意是说,Mootools能从Sizzle中得到不少灵感,但是如果是他来决定是否在Mootools中采用Sizzle,他会选择等等看,看下Sizzle在其他框架中的表现。

一天过去,Mootools创始人Valerio Proietti发表了声明,Mootools对Sizzle说不!

花了半天时间,终于把这事的大致经过看完。

采用Sizzle的理由,我大致翻译了下,主要有:
1. 开发者不用重复造轮子,并可以集中开发者的力量到一个地方。
2. 其他框架开发人员减少开发selector的精力
3. 让使用者更容易从一个框架迁移到另一个
4. 可以对浏览器提供者造成更大的影响,将来提供更统一标准的浏览器
5. 框架开发者之间得到了新的合作方式,能共享更多的好东西
6. Sizzle的速度很快

而Aaron Newton认为不好的理由有:
1. Sizzle太大,并可能会越来越臃肿。
2. Sizzle缓存了查找结果,这可能是使用者并不想要的。
3. 其他框架的开发者失去了自主权。
4. 如果Sizzle得到了垄断地位,框架之间的合理竞争机制可能会失去,创新的能力会减少。

Valerio Proietti的声明中表示,我们不用Sizzle的理由有:
1. 我们本来就很快。

他在文章中解说,Sizzle之所以在slick speed中感觉快,是因为Sizzle做了缓存,而slick speed会执行五次,后四次等于是没有查找,这对于比较其他框架是不公平的。于是,他新写了个mootools_vs_sizzle,认为这个比较结果才是公平的。我也测试了下,FF3, IE7两者感觉是差不多,IE6中,Mootools感觉还要快些。

2. 我们知道我们在做什么。

Mootools是我们写的,我们知道哪儿是如何实现,哪儿需要改进,我们可以很快的对自己的代码进行修改,自主权完全在我们手中,而如果采用Sizzle,当我们想要对其进行补丁时,会有可能被Dojo驳回。Sizzle中的代码理念并不是我们想要的(我感觉理念是Mootools开发人员最爱说的词), 我们有我们实现的一套方式,而Sizzle里有很多东西并不是我们想要的。

3. Sizzle看上去是在搞垄断

垄断将会阻碍一件良好的竞争与创新(看看IE吧,这些年来,它都做了些什么?它什么也没有做!这是我说的。),让大家都做一件事,只会终结创新。而且看上去,将来,Jhon Resig还打算统一DOM manipulation 和 event binding,那么好了,什么都是你做的,那么其他框架还有什么存在的必要?我们之所有用不同的框架来做同样的事情,是因为我们都有不同解决方式,我们在理念上是不同的(你能说Firefox 和 IE 的理念相同?这还是我说的)。

好了,我最后总结下,Mootools是Valerio Proietti的孩子,他心里想,我这孩子长的是眉清目秀还聪明能干,凭什么你过来就说,你那孩子不行,你看我这孩子,家家都要,来吧,丢了你家的,用我家的。Valerio Proietti说你家孩子长得再漂亮那也不是我的呀,于是号召大家抵制Jhon Resig的贩卖人口行为,看好自家的孩子不要弄丢了。

上次双方交手是关于开发者应该选择哪个JS框架,这次双方的交火让我感觉更激烈了些。

前阵子,微软说将把jQuery作为官方开发平台的一部分,这次的事件Dojo又表示可能将采用Sizzle。种种迹象表明,Jquery的流行度实在惊人。

这三人的态度,Aaron Newton最平和,但我一样也欣赏Valerio Proietti的独立精神,至于Jhon Resig,不得不承认他搞营销和搞JS水平一样高深。

我又要发表无责任预测了,Jquery市场占有率将不停走强,而Mootools仍然保持小众框架地位。说来惭愧,我现在也没有用Mootools写过东西,光看他们打口水仗了,得找时间用Mootools写点东西了。

MooTools and Sizzle相关推荐

  1. html模块开发模板引擎,一个前端html模板处理引擎(javascript)

    http://www.cnblogs.com/jcli/p/javascript_template_pure.html 做后台开发(java/python)的同学开发web应用,对于前端页面生成技术并 ...

  2. 一个前端html模板处理引擎(javascript) - pure

    做后台开发(java/python)的同学开发web应用,对于前端页面生成技术并不陌生,像jsp,freemark等.开发UGC类型的互联网站,因为要SEO友好,所以一般都会在后台用模板引擎直接生成好 ...

  3. mootools 选择器_MooTools中的Sizzle和Peppy选择器引擎

    mootools 选择器 A few weeks back I touched on how you could implement the Peppy and Sizzle selector eng ...

  4. 转:初探 jQuery 的 Sizzle 选择器

    这是一篇关于介绍jQuery Sizzle选择器的文章,由我和obility共同完成.在文中,我们试图用自己的语言配以适量的代码向读者展现出Sizzle在处理选择符时的流程原理,以及末了以少许文字给你 ...

  5. 返回顶部的js实现(jQuery/MooTools)

    一.引言 在web页面中,如果页面较高,为了方便用户快速地返回顶部,都会添加一个返回顶部按钮.例如: 如果你看到这段文字,说明转自<一棵树-博客园>,原文链接:http://www.cnb ...

  6. 使用Mootools动态添加Css样式表代码,兼容各浏览器

    这个函数很有用处,尤其是当我们在使用Mootools开发插件的时候,例如Tips等,当我们需要额外的Css来支撑插件内的效果时,通常我们的做法是把Css放到单独的css文件里调用,但是这样做就不利于插 ...

  7. JQuery - Sizzle选择器引擎原理分析

    说明:14年学习的jquery源码,搬到这里供大家交流.原文地址:https://segmentfault.com/a/1190000003933990 一.前言 Sizzle原来是jQuery里面的 ...

  8. Sizzle引擎--原理与实践(二)

    主要流程与正则 表达式分块 var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['& ...

  9. [导入]几种流行的AJAX框架jQuery,Mootools,Dojo,Ext JS的对比

    AJAX是web20的基石,现在网上流行几种开源的AJAX框架,比如:jQuery,Mootools,Dojo,Ext JS等等,那么我们到底在什么情况下该使用那个框架?以下是一组摘抄的数据: Aja ...

最新文章

  1. IE内置的WebBrowser控件之--WEB打印
  2. leetcode 279 四平方定理
  3. 青蛙的约会(POJ-1061)
  4. Best MSI to EXE Convert tool
  5. 数据挖掘:模型选择——集成算法与树模型
  6. MySQL数据库解决方案
  7. 封装多帧dicm图像
  8. linux ape,Linux下APE歌曲的制作
  9. linux编译n2n v2,重新编译N2N
  10. 记一次利用tomcat manager部署war包失败并解决的经历
  11. Android-GIF图片显示
  12. 模拟卷Leetcode【普通】198. 打家劫舍
  13. window用户切换
  14. JS添加/修改CSS样式
  15. logo制作软件 Ai怎么设计创意LOGO
  16. Chrome下如何复制禁止复制网页上的文字
  17. [转载]ExtJs4 笔记(2) ExtJs对js基本语法扩展支持
  18. 做完系统回来计算机连接不上网络,电脑重装系统后网络连接不上怎么处理
  19. 这是一个神奇(神器)的网站
  20. 论大数据的泡沫、价值与应用陷阱

热门文章

  1. AES算法描述及C语言实现
  2. 服务器巡检都做什么工作,巡检的手段是什么?
  3. Service ‘MongoDB Server‘(MongoDB) failed to start.Verify that you have sufficient privileges to
  4. proteus8的简单运用
  5. 【高等数学】-积分再现公式
  6. 简单的面向对象思想,写一个传奇人物的属性
  7. 一分钟了解“matlab得到自然常数e”
  8. paho mqtt不定时抛出Connection reset异常导致客户端掉线
  9. 有了这个sku分析!老板再也不用担心我不会选款备货了
  10. 系统安全及应用(操作)