Fork me on GitHub

[转载]从应用场景角度比较四大主流JS框架jQuery、Prototype、Mootools、Yui

  现在常用的框架有jQueryPrototypeMootoolsYui等,其他的框架都是非主流,有一个数据很有意思,就是这几种框架的市场占有率,我觉得这个数据没有太大意义,因为这几种前端框架都有各自的针对性和特点,每种框架都适合相应规模的Web项目,比如PrototypejQuery适合中小网站开发,MooTools适合中型网站开发,Yui适合大规模的Web项目开发,而小网站的数量要远大于门户或SNS这种大网站的,因此,不论怎么比较,jQueryPrototype的使用数量都要超过MooToolsYui

 

  在入门级开发者人群中,Prototype是使用量最大的,因为他相对简单一些,这里的简单和jQuery的简洁不一样,ProtoType也算“老”一点的框架,而且很多js高手入门都是从ProtoType开始的,因此也有很多wd对ProtoType有特殊的感情,毕竟,ProtoType改变了我们对JS的看法。它的很多设计思想也被沿用致其他框架中。但一个框架是否优秀不应当只看一面,更重要的,框架对浏览器的支持、文档、扩展行、性能、编码风格这些因素也在影响框架的使用者。ProtoType太基础以至于对IE浏览器的版本判断很粗糙,它糟糕的文档和扩展性,都是阻碍其在那些想深入学习JS的人群中更加流行的因素。因此,如果想积累一些入门级的前端实践 ,用ProtoType非常合适。

 

  有人说jQuery是被设计用来改变你写JavaScript的方法的。在这一方面jQuery的确作的很好,20行的Dom javascript语句在jQuery里只需要2-3行就可以完成,语言的简洁简直太吸引人了,尤其对于前端开发工程师这群多少有些代码洁癖的人来说,简直美妙绝伦,甚至忽视了其粗糙的面向对象的结构这一致命的缺点。当我们过多的沉浸在代码简洁的乐趣中无法自拔的时候,对更高级抽象的忽视往往阻挡住了我们的视野。因此,jQuery本身无法承担庞大的网站架构任务,也只能在中小网站中搞一搞动画特效而已。但这仍然无法阻止wd们对jQuery的偏爱,只要你有洁癖,那么你一定会喜欢jQuery的。

 

  在面向对象的方面,MooTools的确作的不错,软件设计模式中的高内聚和低耦合在MooTools中有良好的体现。文档也很完整,但MooTools的占有率一直不高是一个很尴尬的现象,作底端太多余,无法和jQuery竞争,作高端又有点吃力,无法和Yui竞争,给人鸡肋的感觉,就这样。

 

  如果你想作门户、如果你想作SNS、如果你想作大型电子商务和电子政务网站,你大概只有一个选择,那就是YuiYui抽象出了比其他框架更复杂的层次结构、把模块按照不同的层次划分,并定义层次之间模块依赖关系,这种设计使得Yui对万行级代码的管理游刃有余,这种重设计轻开发的思想是Yui的核心之一,此外,Yui不仅仅是JS框架,他是JS+CSS+规范的集合,必要的约束在团队协作项目中可以降低成本。其实Yui本身也是团队合作的产物。在扩展性方面,我觉得Yui是所有前端框架作的最好的,Ext就是选择基于Yui进行扩展。相对来讲,ProtoTypejQuery显然太小了。

 

总结

  轻量级的选择主要是MooToolsjQuery,由于它们的设计思想的不同,jQuery是追求简洁和高效,MooTools除了追求这些目标以外,其核心在于面向对象,所以jQuery适合于快速开发,MooTools适合于稍大型和复杂的项目,其中需要面向对象的支持;另外,在Ajax的支持上,jQuery稍强一些;在Comet的支持上,jQuery有相关的插件,MooTools目前没有,但是Comet的核心在于服务器的支持,浏览器端的接口很简单,开发相关的插件很简单。在面向对象的Javascript Library中,MooTools逐渐战胜了ProtoType(体积大,面向对象的设计不合理等),也包括script.acul.ous(基于 ProtoType,实际上就是ProtoType上的UI库)。

 

  因此,特定的框架有特定的使用范围,在合适的项目上,相应的框架都会发挥其应有的优势,因此,过分比较前端框架并得出熟优熟劣来纯粹是吃包了撑的,这和比较编程语言那个好和操作系统那个好一样没有意义。总结至此只为加深对前端框架的印象和理解,无他。

posted @ 2013-09-09 21:41  VAllen  阅读(794)  评论(0编辑  收藏  举报