AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

争论:Prototype 与 jQuery

  • 2009-01-24
  • 本文字数:1395 字

    阅读完需:约 5 分钟

由于 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

2009-01-24 01:037515
用户头像

发布了 88 篇内容, 共 266.6 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

教你用JavaScript实现背景图像滑动

小院里的霍大侠

JavaScript 编程入门 实战案例 图像滑动

ShineScrum捷行2022年最受欢迎的五篇文章回放

ShineScrum

PO 用户故事 项目经理 PRD 团队工作效率

网易云音乐用户画像资产治理及业务赋能

网易数帆

数据仓库 数据治理 数据资产 12 月 PK 榜

云起无垠入选《ISC 2022数字安全创新能力百强》

云起无垠

问答知识库快速构建技术解析及行业实践

中关村科金

人工智能 大数据 AI 知识图谱 技术实践

DM 实践手册

TiDB 社区干货传送门

迁移 管理与运维

我和 TiDB 的故事 | TiDB 仓库 commit TOP 1,PR 数超过 1000 的阿毛哥

TiDB 社区干货传送门

人物访谈

户外LED显示屏技术

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

一文解读机密容器的崛起和发展

云布道师

龙蜥

Coinbase或在不久使用Zebec发放工资,并对Web3支付赛道发展寄予厚望

鳄鱼视界

消除视觉Transformer与卷积神经网络在小数据集上的差距

华为云开发者联盟

人工智能 华为云 12 月 PK 榜

MySQL的数据类型和存储引擎介绍

C++后台开发

MySQL 数据库 中间件 后端开发 存储引擎

数据报告 | 非洲电商市场分析报告

前嗅大数据

数据报告 电商报告

什么样的CRM,才值得企业为之买单呢

ToB行业头条

低代码开发平台YonBuilder移动开发,开发阅读APP教程

YonBuilder低代码开发平台

App 低代码 移动开发 阅读 开发.

解读Java内存模型中Happens-Before的8个原则

华为云开发者联盟

Java 开发 华为云 12 月 PK 榜

Nginx学习笔记(一)HTTP核心配置指令

Starry

TiCDC 源码解读(2)-- TiKV CDC 模块介绍

TiDB 社区干货传送门

践行开源理念,统信软件开放服务器操作系统UOS V20使用授权

统信软件

操作系统 服务器 国产化 免费

阿里云联合“产学研媒”发起BizDevOps共促计划,助力企业提升组织效能

阿里技术

研发效能 数字化转型

Go 中这么多创建 error 的方式,你真的了解它们各自的应用场景吗

Go学堂

golang 开源 程序员 个人成长 12月月更

V8的垃圾回收和内存限制

千锋IT教育

Coinbase或在不久使用Zebec发放工资,并对Web3支付赛道发展寄予厚望

西柚子

不止于大,如何打造优秀的折叠屏应用体验

HarmonyOS开发者

HarmonyOS

作为程序员,12款常用的软件!

千锋IT教育

Coinbase或在不久使用Zebec发放工资,并对Web3支付发展寄予厚望

股市老人

Java开发如何通过IoT边缘ModuleSDK进行进程应用的开发

华为云开发者联盟

开发 数据处理 华为云 12 月 PK 榜

请求量太大扛不住怎么办?进来学一招

捉虫大师

Go 性能优化

YonBuilder移动开发平台AVM框架 封装滑动单元格组件

YonBuilder低代码开发平台

开发者 后端 移动开发 avm.js AVM

What's new in Dubbo 3.1.4 and 3.2.0-beta.3

Apache Dubbo

Java 开源 微服务 dubbo RPC

争论:Prototype与jQuery_Java_Dio Synodinos_InfoQ精选文章