由于Ajax已经统治了Web开发中的客户端,人们不禁要问“哪个JavaScript/Ajax框架才是最好的”。最近Glenn Vanderburg撰写了一篇Prototype和jQuery比较的文章,这引发了业界专家Douglas Crockford和Dion Almaer的不同回应
Glenn Vanderburg首先谈到其专业的JavaScript经验并解释到他缘何有机会使用这两个框架:
就像大多数从事Rails开发的程序员一样,我也非常熟悉Prototype库。甚至在其集成到Rails之前,它就是我的首选。在开始使用Prototype之前,我就已经 非常 精通 JavaScript了,同时我也欣喜的看到Prototype库弥补了JavaScript语言中的很多缺陷。此外,我已经使用Ruby开发好几年了,Prototype的哲学非常自然,显然它从Ruby中获得了不少灵感。
但我了解到有越来越多的人在为jQuery唱颂歌。我大略的看过jQuery,它给我留下了深刻的印象,然而却没有找到充分的理由让我转投jQuery。但jQuery的狂热者中竟然有我很尊重的人,包括(过去几个月中)我在Relevance的几 个 同事 。
现在我正从事着两个不同的项目,他们都使用了jQuery。我与一些经验丰富的jQuery使用者一起工作,这的确增强了我对jQuery的理解和认识程 度。工作中有很多JavaScript相关的事情需要处理,有简单的,也有复杂的,因此我有机会感受使用jQuery的幸福,同时也看到了其发展方式。
他继续详尽的论述了Prototype的优缺点:
我认为Prototype还是优于jQuery,这一点并没有改变。当然jQuery还可以继续改进,其设计还有突破的可能(对 于这个方面,我认为jQuery所缺失的一些特性都可以插件的形式补充进来)。但遗憾的是,如果不破坏兼容性就无法修复jQuery API的一些缺陷,而这一点在下一个版本中依然还是个未知数。
但至少Prototype还可以独善其身。无论对于我还是对于其他使用者来说,Prototype依然是JavaScript库的首选。
Glenn Vanderburg的论调遭到了Douglas Crockford(Yahoo高级JavaScript架构师,JSON之父)的反对,Douglas Crockford对jQuery偏爱有加:
尽管一些评论家认为存在一小撮对jQuery无知的人是正常的,但我认为Glenn的论调并不可信。作为一个后起之 秀,jQuery从Prototype中汲取了很多内容,为我们带来了一个很棒的表达式语言模型。但错误还是出现了,jQuery的突然流行使得这些错误 的修复不太可行了。显然jQuery社区采取了包容的态度,而Glenn却没有。John Resig是个聪明的家伙,我能想象到当他无法修复这些问题时是多么的沮丧啊。也许他现在知道Brendan的感受了。
来自Mozilla的Dion Almaer对此却不敢苟同,他认为jQuery更适合自己的口味:
暂且放下其他事情不谈(如团队技巧,项目情况等等),我认为:
- 如果要构建动态的Web站点,用jQuery没错。简单、优雅、漂亮。如果我是一个设计者,我也会使用它的。
- Dojo对于大型、需要编写大量JavaScript的应用来说是上佳之选。你需要的任何东西Dojo都有。但这并不是说小型应用就不能使用Dojo了。其新的核心足够小、足够快、足够好。
我认为对于这两种情况来说Prototype都适合。它既适合小型应用(无需学习大量的库),也适合大型项目,这样我自己就无需编写大量代码了。
当然了,Dion指出这场争论并没有考虑到其他优秀的框架、库和工具集,如Dojo、YUI、GWT、MooTools、Ext JS、SproutCore等等。
你认为哪个才是最好的Ajax框架呢?
查看英文原文:Debate: Prototype vs. jQuery