Ruby 1.8.8及通向Ruby 1.9.1之路

随着Ruby 1.9.1的发布,Ruby 1.9也迎来了自己的稳定版,但很多人仍然不愿意转到该版本上,因为缺少与1.9兼容的库及工具支持。

尽管Ruby 1.8.7已经出来一阵了,但在未来一段时间内还是会继续维护1.8.6的。Ruby 1.8.7引起了不少争执,因为它移植了1.9的一些特性而有些改变会产生问题(相对于1.8.6),这也导致了JRuby团队目前放弃了对Ruby 1.8.7的支持(虽然这可能会发生变化)。

最近人们又重新开始了关于1.8.x分支未来的争论,部分原因在于Ruby 1.8.8将于今年发布。

在这场争论中, Ruby 1.8.7+的主要维护者Akinori MUSHA公布了1.8.8的计划:

对于我们来说,1.9才是未来而1.8.6及之前的版本都已成为尘封往事了。1.8.7也成为了过去,但如果你觉得没那么难的话可以继续对1.8.7+提供支持,这样的话那些还不准备迁移的用户会很感激的。在Ruby 1.8.8中加入了兼容性语法,这样我们就可以在单独的源代码文件中轻松编写适合于1.9和1.8.8+的代码而无需放弃1.9的那些优化了。

如果你仍需编写1.8.6的代码但打算将来支持1.9,那么请使用警告选项(-w)在1.8.7和即将到来的1.8.8下运行程序。

尽管官方的1.8.7具有一些来自于1.9.1的迁移性特性,但我们还有其他方式来利用1.9.1的那些特性。其中1.9.1中的Fibers就是非常有用的,它被用来为Ruby的数据库适配器进行一些重要的可伸缩性改进。NeverBlock通过向库中增加“Fibers”来支持1.8.x。

目前该移植以1.8.6_p287和1.8.7_72补丁的形式发布:

在Kickball Labs中,Aman Gupta(http://github.com/tmm1)和我(http://github.com/ice799 )[Joe Damato]正在忙于Ruby 1.8.{6,7}的Fibers实现。其API兼容于Ruby 1.9,但除了“transfer”方法,因为当前尚未实现该方法。凭借该补丁,你可以让mysqlplus和neverblock与Fibers协同工作。

查看英文原文:Ruby 1.8.8 and the Road to Ruby 1.9.1

你可能感兴趣的:(Ruby 1.8.8及通向Ruby 1.9.1之路)