因為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