Prototype 兴衰启示录

来源: OSCHINA
编辑: oschina
2012-12-24

本文的作者 Sam-Stephenson
本文的作者 Sam Stephenson

本文的作者Sam Stephenson是Prototype js框架的创始人。他从2006年开始一直在37signals工作做web开发。除了Prototype外,他还开发过很多开源软件,比如rbenvsprockets 等。

程序员们一起努力来创建共享的软件基础工具:这是开源软件的基本要旨。任何有想法、有激情并且有能力实现这个想法的程序员都是在为我们解决一个常见问题,向世界分享其解决方案,然后其他程序员会在将来一起改进这个方案,这就是回报。

做这种共享的基础软件工具通常需要具有疯狂的大脑。我早该知道这些。在2005年,我开发了Prototype脚本库——现代web浏览器应用设计 的第一代JavaScript类库。在当时浏览器创新一片死气沉沉的景象中,Prototype是一个与众不同的创意:我们能否通过扩充 JavaScript的内置类型、通过增加具有新功能的类型来弥补JavaScript的固有缺陷?

这种思想很快的被接受。Ruby on Rails选用Prototype作为其JavaScript框架,很快人们就在一些知名的大公司,例如苹果,纽约时报的网站里发现了它的身影。

然而,不久之后,事情越来越清楚:Prototype的核心思想和这个世界的发展方向是不一致的。浏览器厂商对JavaScript复兴所做的努力 是增加新的API,其中很多是和Prototype的实现相冲突。此时,程序员开始展现对一些小的,自我实现,模块化的脚步库的偏爱,而不是大型的框架。

仅仅短暂的几年时间,Prototype从一个最佳的开发准则变成了反模式的代表——依赖于你在听谁说,你甚至会相信它是Web上最糟糕的一个东西。可事实上,尽管架构上有缺陷,Prototype曾给众多程序员带来帮助。但是春来春去,我最终发现我需要走向新的征途。

作为个人,很难独自承担起Prototype的失败。批评性的博客文章让我感觉这是我个人价值的重创。看着朋友们都去使用其他的脚本库,我感觉我的工作都是在浪费时间。

但这是一种我们让共享软件向前进步的过程。为了跟上最新的技术,我们不仅要能去尝试新思想,还要能放弃那些已经不可用的或者有更好的思想替代的旧思想。我们必须有勇气的坦率的说出代码中的问题,去除内心的自负对犯错的恐惧。

在开源世界里我学到了——我并不是我的代码。对我的软件作品的批评并不是对我个人的攻击。我的软件的替代品的出现并不是一个敌意或分化。它只是人们永不停息的对现状改进的愿望驱动下的一个简单的更新换代的结果。

Sam Stephenson,37signals公司的一个程序员。

[本文英文原文链接:You Are Not Your Code ]

展开阅读全文
17 收藏
分享
加载中
最新评论 (20)
现在还在用prototype,因为系统已经集成了太多东西了,不想也没法换别的框架
2012-12-24 23:05
0
回复
举报
第一反应是prototype那个游戏。。。囧~~~只用jquery的飘过~
2012-12-24 14:52
0
回复
举报
prototype虽败犹荣 还在使用中~
2012-12-24 14:42
0
回复
举报
你和你的代码不能划等号,的确如此。
2012-12-24 14:21
0
回复
举报
37signals 人少,可都是强将啊
2012-12-24 13:20
0
回复
举报

引用来自“杨金焕”的评论

引用来自“蟋蟀哥哥”的评论

cao...Magento最大的败笔就是用了prototype,我现在看到他都头痛。。。还是Jq方便

简单的dom处理,prototype.js甚至比jquery还方便。如jquery的:$('#id'),在prototype.js中:$('id'),你说,哪个方便!!!!

方不方便是相对的,是应用的广泛性,社区推广,方档,扩展方面。

对prototype.js的class还是十分情有独钟,原来js的class是这样的,如果看懂了prototype.js的,javascript就是通了。
jquery却没有class的封装。

讲实话,jquery的语法没有prototype.js优雅!!

prototype用的就是jqeury的选择器引擎,你的例子没有实际说服力,而且prototype其他类新的选择那得用$$呢。
2012-12-24 12:13
0
回复
举报
前几天看到一个新闻 porn.com 和另外一个色q类网站在全世界很有名,有60多万E的浏览量...数字可能有误,但是浏览量的确非常高.
2012-12-24 11:50
0
回复
举报

引用来自“杨金焕”的评论

引用来自“蟋蟀哥哥”的评论

cao...Magento最大的败笔就是用了prototype,我现在看到他都头痛。。。还是Jq方便

简单的dom处理,prototype.js甚至比jquery还方便。如jquery的:$('#id'),在prototype.js中:$('id'),你说,哪个方便!!!!

方不方便是相对的,是应用的广泛性,社区推广,方档,扩展方面。

对prototype.js的class还是十分情有独钟,原来js的class是这样的,如果看懂了prototype.js的,javascript就是通了。
jquery却没有class的封装。

讲实话,jquery的语法没有prototype.js优雅!!

关键是文档,插件这些.....
2012-12-24 11:01
0
回复
举报
更多评论
20 评论
17 收藏
分享
返回顶部
顶部