因为javaeye的fins的这个帖子:
我为什么选择mootools,抛弃了prototype. (mootools与prototype 核心代码分析)
我发表了一下我的看法
我觉得fins同学的一些说法会造成没有深入使用这几个框架的朋友的误解。因为这几个框架的思想是不一样的,所以它们的语法也是不同的。fins同学的评价似乎更像从Java的OO想法来评价几个js框架。
其实,moo一开始的想法就是light weight,所以它的很多语法其实就是没有语法。fins说的json语法,其实就是js里面的散列对象嘛,javascript语法本来就是这个样子呀,不包装就是这样。而这种方式如果写的好读起来很像DSL,很舒服,moo充分发挥了这个好处。
prototype和JQuery都没有强调继承这样的概念。javascript的强大很大就来自它的原形继承,如果要用好它就要利用好原形继承。prototype在这方面很像Ruby,比如Enumerable,这是一种按照行为的抽象,很符合Ruby/Python里面Module的想法,并非所有行为都要抽象到一个对象再继承,行为本身也可以抽象再混入。
JQuery我觉得像Python。write less do more这个想法也比较pythonic。在这个框架中有很强的函数式编程的味道,其实javascript已经具备了函数式编程的语法能力,所以使用FP的强大是JQuery受欢迎的原因之一。
说回来,还是流派原因。moo的产生比前两者要晚。prototype已经开始走大而全的路子了,而且配套的script.aculo.us也是越来越臃肿(而且这个特效库的代码质量的确不怎么好),但是要看到RoR里面使用RJS简化Ajax应用开发都得益于这些大而全的库,所以我们也没什么可抱怨的,只能说没有使用RoR少享受点便利吧。JQuery继续保持它的优美,插件也越来越多,我了解到的很多使用Django进行Web开发的朋友都在用JQuery。而moo,越来越受欢迎,我们也要认真关注它的体积,如果它能持续保持苗条,那么轻量级Web项目就很有可能越来越多的选用它。
每年学一门新语言,学两三个新框架,肯定是有益的。fins转阵营说明你也在拥抱变化呀:D