我被告知ruby 1.9.2是ruby 2.0,但ruby 1.9.3计划在不久的将来发布,它将包含一些性能增强。
那么他们对2.0有什么计划呢?它和ruby 1.9.x有很大的不同吗?
发布于 2011-04-18 10:00:15
YARV中已经实现的两个特性是特征(mix
)和Module#prepend
,它们很可能最终出现在Ruby2.0中。
与当前的include
方法不同,mix
方法接受一个模块列表,并同时混合所有模块,以确保它们没有冲突的方法。它还为您提供了一种轻松解决冲突的方法,例如,如果您想混合使用两个模块来定义相同的方法。因此,基本上,include
方法允许您将模块视为mixin,而mix
方法允许您将模块视为特征。
与include
一样,Module#prepend
将模块混合到类或模块中,但它不是将模块插入到类的正上方,而是在类的正下方插入。这意味着模块中的方法可以覆盖类中的方法,并且它们可以使用super
委托给被覆盖的方法,这在使用include
时是不可能的。这基本上使alias_method_chain
过时了。
一个已经讨论了几个月(或10年,取决于你的统计方式)的特性就是改进。现在已经讨论了10多年,在Ruby中添加一种范围内的、安全的猴子补丁的方法。多年来,这种安全的猴子补丁的领跑者是Selector命名空间,然而最近,Classboxes得到了很多关注,甚至最近,提出了一个改进的原型实现和规范,这是Classboxes的一个变体。
一般来说,Ruby 2.0的主题是可伸缩性:扩展到更大的团队,更大的代码库,更大的问题规模,更大的机器,更多的内核。但也可以缩小到更小的机器,如嵌入式设备。
我上面提到的三个特性是为了扩展到更大的团队和更大的代码库。为了扩展到更大的问题规模和更多的核心,一些建议的功能是Enumerable
方法的并行集合和并行实现,以及更好的并发抽象,如未来、承诺、代理、参与者、通道、连接模式或类似的东西。
https://stackoverflow.com/questions/5506498
复制相似问题