频道直达:新闻 - 组网 - 安全 - 服务器 - 存储 - 系统 - 应用 - 开发 - 数据库 - 前沿 - 技术人 - 培训 - 求职 - 读书 - 教程 - 专题 - 产品 - 案例 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

Ruby 1.9,你何时能够投入应用?

作者: Rick DeNatale/李明 编译 出处:InfoQ中文站 2008-01-16 17:29    砖    好    评论   进入论坛
阅读提示:一些Ruby程序员将Ruby1.9的发布看做是迈入Ruby新版本的标志性事件,但他们却发现在1.8版本和1.9版本语言之间的刻意不兼容性会导致原有Ruby代码无法工作。真正的问题是,Ruby 1.9.0发布的原因以及其与Ruby1.8之间的关系并不完全被Ruby社区元老们所了解。

Ruby  1.9旨在对Ruby语言本身及核心类库进行修改完善,在经过了一年多的试验以后,终于在2007年的圣诞发布了——版本为1.9.0。

一些Ruby程序员将Ruby 1.9的发布看做是迈入Ruby新版本的标志性事件,但他们却发现在1.8版本和1.9版本语言之间的刻意不兼容性会导致原有Ruby代码无法工作。这个发现迅速成为了ruby-talk邮件组上讨论的话题。

其实真正的问题是,Ruby 1.9.0发布的原因以及其与Ruby 1.8之间的关系并不完全被Ruby社区元老们所了解。Matz在新版本发布前的几个月里在ruby-core邮件组里有过明确的说明,在一篇圣诞前一天的帖子中,他写道:

◆发布的版本是1.9.0,而不是我们预先声明的1.9.1。这表明它并不像我们期望的那样稳定,但是所有的不兼容性修改都已经完成了。
◆1.9版本与之前的版本是不兼容的。你的应用可能不会正常工作。移植的方法(或者移植工具)在第一版中不会提供。

而不幸的是,这些并没有出现在他在ruby-talk上的官方的发行声明中。

Dave Thomas在1.9.0发布后不久马上就在博客文章中给出如何看待及使用Ruby 1.9的意见。他的建议是在安装Ruby1.8的同时安装Ruby1.9,并开始对已有代码的兼容性进行检查,以便使其与Ruby 1.9兼容。

在最近,当Matz被问及何时Ruby1.9能够达到开发状态的时候,他说:

我们不知道。我们真的希望这一天早日到来。但是这涉及到非常多的因素。唯一的好消息就是,1.9的标准已经在上个圣诞节基本上确定了。

除最终确定标准以外,将Ruby 1.9用于实际生产还依赖于一个1.9的兼容版本,这也是Ruby应用的应用基础。Rails核心团队正在致力于改进Ruby 1.9的兼容性,众多gems和插件的开发者们也同样在努力。1.9兼容性的实现才是1.9.0发布的真正标志。

这些开发者们中的一些人也通过文档的形式说明了Ruby1.9对其代码的影像。其中的两个干得不错:一个是Sam Ruby关于对REXML的修改使之兼容的描述;另一个则是James Edward Gray II的类似文章,里面介绍了对FasterCVS类似的努力——从而实现了Ruby1.9标准库中对旧版CSV的替换。后者还给出了一系列有价值的经验和建议,比如:

◆Ruby1.9消除了通过“:”在if、unless和case语句中来代替关键词then的使用方法。
◆一些反射方法,例如instance_variables和constants,不再返回字符串数组,而是返回符号数组。
◆索引一个字符串的时候,比如"abc"[0],会返回一个单字符的字符串,而不是返回一个整数。
◆Enumerable#zip有两方面修改。调用时没有块参数的时候,返回变成了一个迭代器而不再是数组;而在Ruby1.8中[1, 2, 3].zip(%w{a b})产生的是[[1,'a'], [2, 'b'], [3, nil]],但在Ruby1.9中,因为前面提到的改变,[1, 2, 3].zip(%w{a b}).to_a的结果变为[[1,'a'], [2, 'b']],即多余的元素会被接收者略过。这在ruby-core邮件组中有一系列讨论,看上去这些修改中的一个或者全部可能在1.9最终标准发布以前会修改成以前的样子。

Ruby1.9还为用户展示了许多颇为深奥的Ruby特性供选择。一些特性如延续机制等目前已经移出了核心并成为标准库的一部分。

另外,Ruby1.9提供了对编写代理类更好的支持。在Ruby 1.9以前,一些第三方ruby库使用Jim Weirich的BlankSlate类或者其衍生版本来实现一个最小类,最小类比Object的方法少得多,以至大部分的方法都会触发method_missing的回调。BlankSlate程序化地移除了许多继承的方法。Ruby1.9有一个新类叫做BasicObject,它实现了一个方法的最小集合(!、!=、==、equal?、singleton_method_added、singleton_method_removed和singleton_method_undefined),简化了代理类的编写。另一方面,在ruby-core还有一些是否需要更多的方法,如instance_eval的讨论。

总而言之,Ruby1.9的工作依然在进行当中,它依然还是一个开发版本而不是一个生产版本。1.9.0版的发布给了社区一定的冲击,来促使大家更加认真的来看待“新的”Ruby,但是Ruby1.9的成熟和社区能够准备好通过Ruby1.9进行更多的生产开发尚需时日。Dave Thomas就此说道:

Matz将1.9版本发布为一个开发版本,其中一个好处在于:我们有足够的时间去应对应用的迁移。

【相关文章】

【责任编辑:火凤凰 TEL:(010)68476606】

专题
VMware技术应用
VPN安全技术与应用
系统应用日志分析管理
服务器维护与应用基础
C++是垃圾语言?!
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·Java基础教程 (查看80568次)
·UML类图详解 (查看72048次)
·C++是垃圾语言?! (查看42009次)
·C#技术开发指南 (查看39556次)
·UML统一建模语言 (查看39017次)
·Java编程开发手册 (1198个砖)
·Java基础教程 (431个砖)
·C#技术开发指南 (311个砖)
·.NET开发手册 (252个砖)
·PB开发教程 (223个砖)
·Java编程开发手册 (658个好)
·Java基础教程 (578个好)
·.NET开发手册 (282个好)
·PB开发教程 (213个好)
·Delphi开发技术手册 (200个好)
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
世纪枭雄比尔盖茨的王者传奇
世纪枭雄比尔盖茨..
虚拟化技术还有点“虚”
虚拟化技术还有点..
ASP.NET开发教程
ASP.NET开发教程
· ASP.NET开发教程
· 专题:ASP.NET 2.0基础..
· LAMP技术精解
· 服务器节能与绿色IT
· ARP攻击防范与解决方案
· Linux 集群技术专题
· Windows集群服务应用
· CISSP认证成长之路
· SQL Server 2008/2005..
· SQL Server入门到精通
· 网络工程师职业规划与..
· 浏览器的战国时代
· 运营商封堵ADSL共享 中..
· 微软出价446亿美元收购..
· 技术人求职简历完备手册
· 开源虚拟化技术Xen
ARP攻击防范与解决方案
ARP攻击防范与解..
SQL Server 2008/2005全解
SQL Server 2008/..
SOA 面向服务架构
SOA 面向服务架构
· SOA 面向服务架构
· SQL Server 2008/2005..
· Apache技术专题
· 三层交换技术专题
· SQL Server入门到精通
· Apache技术专题
· Windows集群服务应用
· 国际文档格式标准开战
· 路由器设置与口令恢复
· Linux 集群技术专题
· PHP开发应用手册
· SOA 面向服务架构
· 企业数据恢复指南
· 了解统一威胁管理(UTM)..
· 专题:AIX操作系统管理..
· 访问控制列表(ACL)介绍
ARP攻击防范与解决方案
ARP攻击防范与解..
SQL Server 2008/2005全解
SQL Server 2008/..
SQL Server入门到精通
SQL Server入门到..
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· 三层交换技术专题
· Apache技术专题
· 企业数据恢复指南
· Windows集群服务应用
· 路由器设置与口令恢复
· Linux 集群技术专题
· SOA 面向服务架构
· 了解统一威胁管理(UTM)..
· 反垃圾邮件技术应用
· 访问控制列表(ACL)介绍
· ASP.NET开发教程
· PHP开发应用手册