InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

关注:Ruby 1.9版本即将发布

作者 高昂 发布于 2007年12月5日

领域
语言 & 开发,
过程 & 实践
主题
Ruby ,
Ruby on Rails ,
社区
标签
Rails ,
Python

Ruby的下一个重大版本Ruby 1.9已经整装待发,新版本预计将在08年元旦到来之前发布。目前,一份关于Ruby 1.9版本的更新记录详尽的列出了1.9版本在语言特性方面的完善。这份列表在接近四万行的Ruby 1.9更新记录之中凝练而出,为即将转向Ruby 1.9的开发者提供了最佳的实践参考。尽管Ruby 1.9给出了诸多的改进,但仍旧不能完全代表未来Ruby 2.0版本发布时的模样。在Ruby的SVN存储库的HEAD版本之中,Ruby开发团队正在不断尝试一些新奇的改进和完善。

Ruby 1.9的新特性一经公布就引起了Ruby开发者们的关注。在同样来自于InfoQ的一篇新闻中,曾谈到Ruby 1.9加入纤程(Fiber)后实现轻量级并发的相关特性。不仅如此,Ruby 1.9版本让开发者们最为激动的改进,来自对Ruby语言编译器性能的大幅度提升。

Antonio Cangiano在一份关于各种Ruby实现的性能对比报告中,对不同版本Ruby实现进行了性能测试与比较。在不同应用场景下,Antonio分别对Ruby 1.9版本、Ruby 1.86版本、以及JRuby、XRuby、Ruby.Net、Rubinus等Ruby实现的性能差异进行了测试。结论是,Ruby 1.9在运行时间上要远远少于其他的版本,在效率和表现性上有了显著的提升。在性能测试的总结中,Antonio Cangiano这样写到:

众所周知,Ruby并不是一门解释执行速度非常高——尽管这并非是Ruby语言设计初衷——的程序设计语言,但对于Ruby语言来说,运行速度慢是其一个不可忽视的弱点,任何一处性能上的改进都会使得Ruby语言在现实世界中的应用越来越广泛。抛开性能表现方面的问题不谈,Ruby动态语言的特性及其实现方式,的确为开发者带来了诸多的益处,比方说可以方便的将Ruby代码与Java或.Net现有基础设施进行集成......如今,Ruby的使用者可以自豪的宣布,Ruby已经在性能提升方面做出了重大的改进,Ruby社区的开发者将会一如既往的关注Ruby这门强大的编程语言。

有趣的是,Antonio Cangiano不仅针对Ruby的各个版本实现进行了比较,他同样也进行了Ruby 1.9.0版本、Ruby 1.8.6版本以及Python 2.5.1之间的性能对比测试。Antonio在Mac OS X 10.5系统之下,使用斐波那契递归函数对三者的递归与函数调用进行了测试。同样的循环次数中,Ruby 1.8.6用时158.869秒、Python 2.5.1用时31.507秒,而Ruby 1.9.0仅用时11.934秒。Ruby 1.9版本相对于Python,性能的超越大致在三倍左右。尽管这样的测试并不能代表所有的性能指数,但从一个侧面来看,即将到来的新版Ruby 1.9.0的确是在程序解释运行方面有了巨大的性能提升。

在令人期待的十二月份,除了即将发布的Ruby 1.9,Ruby社区还将迎来新版Rails 2.0的发布。可以预计、随着新版Ruby与Rails的发布,Ruby社区将会掀起新一轮的开发热潮。在新的编程语言使用广泛度排名中,Ruby语言由去年底的排名第十二上升到排行第九名,位列在Java、C、(Visual)Basic、C++、PHP、Perl、Python、C#之后,并且Ruby一直呈现强劲的增长势头,Ruby语言独有的特性一直在不断吸引着开发者的加盟,正如在《Programming Ruby》一书的序言中,孟岩针对Ruby语言描述的那样:

Ruby实现了最纯粹意义上的面向对象,让Smalltalk、Perl和Lisp的灵魂在新的躯壳里高歌。相比于Python,Ruby的思想更加清晰一致,形式更加灵活;相比于Perl,Ruby更简单质朴,绝少光怪陆离之举;相比于Smalltalk和Lisp,Ruby更富有现代感和实干气质;相比于庙堂之上的“工业语言”,Ruby自由挥洒、轻快锐利;而相比于JavaScript和PHP,Ruby从Smalltalk继承而来的深厚底蕴又大占优势。面对执行性能与开发效率的谜题,Ruby毫不犹豫地选择了开发效率,选择了对人脑的友好。Ruby的基本思想非常简单淳朴,对于基本原则的坚持非常彻底,毫不打折扣,而在具体应用中又集各家所长,实现了巧妙的平衡。

如今,在充满热情和创造力的开发者社区的带动之下,Ruby语言已经成为程序设计语言中发展最快的热门语言之一,扎实勤恳的开发者使用Ruby语言进行着孜孜不倦的实践和创新。同时,Ruby on Rails的迅猛势头,无疑在极大程度上推动了Ruby语言的普及与使用,使得Ruby与Rails相辅相成,朝着开发者所期待的方向,不停歇的迈进脚步。

高昂 是IEEE-CS、CCF会员,博士研究生,关注开源软件发展与进步。

Ruby 1.9 + Rails 2.0 发表人 Chen Jerome 发表于
  1. 返回顶部

    Ruby 1.9 + Rails 2.0

    发表人 Chen Jerome

    在解决了性能问题后的Ruby,还有什么可以疑虑的呢?赶快加入Ruby阵营吧!

    ------------------------------------------------
    [Ruby中文社区] - www.ruby-lang.org.cn

深度内容

专访Jeffery Richter:Windows 8是微软的重中之重

Jeffery Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffery Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。

解析JDK 7的动态类型语言支持

随着JDK 7的发布,字节码指令集终于迎来了第一位新成员——invokedynamic指令。这条新增加的指令是JDK 7实现“动态类型语言(Dynamically Typed Language)”支持而进行的改进之一,也是为JDK 8可以顺利实现Lambda表达式做技术准备。在这篇文章中,我们将去了解JDK 7这项新特性的出现前因后果和它的意义。