ruby 1.9.2和ruby 2.0之间的主要/次要区别是什么?

ruby 1.9.2和ruby 2.0之间的主要/次要区别是什么?,ruby,ruby-1.9.2,Ruby,Ruby 1.9.2,我听说Ruby1.9.2是Ruby2.0,但Ruby1.9.3预计将在不久的将来发布,它将包含一些性能增强 那么,他们对2.0的计划是什么呢?它会与ruby 1.9.x有很大的不同吗?在YARV中已经实现的两个特性,很可能最终会出现在ruby 2.0中,分别是traits(mix)和Module#prepend 与当前的include方法不同,mix方法获取模块列表,同时将所有模块混合在一起,确保它们没有冲突的方法。它还为您提供了一种轻松解决冲突的方法,例如,如果您想混合使用两个模块来定义相同的

我听说Ruby1.9.2是Ruby2.0,但Ruby1.9.3预计将在不久的将来发布,它将包含一些性能增强


那么,他们对2.0的计划是什么呢?它会与ruby 1.9.x有很大的不同吗?

在YARV中已经实现的两个特性,很可能最终会出现在ruby 2.0中,分别是traits(
mix
)和
Module#prepend

与当前的
include
方法不同,
mix
方法获取模块列表,同时将所有模块混合在一起,确保它们没有冲突的方法。它还为您提供了一种轻松解决冲突的方法,例如,如果您想混合使用两个模块来定义相同的方法。因此,基本上,
include
方法允许您将模块视为mixin,而
mix
方法允许您将模块视为特征

Module#prepend
将一个模块混合到一个类或模块中,同样就像
include
那样,但它不是将其插入到类上方的继承链中,而是插入到类下方。这意味着模块中的方法可以重写类中的方法,并且它们可以使用
super
委托给被重写的方法,这两种方法在使用
include
时都是不可能的。这基本上使
alias\u method\u chain
过时

一个已经讨论了几个月(或10年,取决于你如何计算)的特性是改进。在Ruby中添加一种范围明确、安全的猴子补丁的方法已经讨论了10多年。也就是说,我可以对一个核心类进行猴子补丁,但只有我的代码可以看到这个猴子补丁,而其他代码看不到。多年来,这种安全的猴子补丁的领跑者是选择器名称空间,然而最近,类框得到了很多关注,甚至最近,提出了一个原型实现和改进规范,一个类框的变体

一般来说,Ruby 2.0的大主题是可伸缩性:扩展到更大的团队、更大的代码库、更大的问题规模、更大的机器、更多的核心。但也可以缩小到更小的机器,如嵌入式设备

我上面提到的三个特性用于扩展到更大的团队和更大的代码库。扩展到更大问题规模和更多核心的一些建议功能是并行集合和并行实现
可枚举
方法,如
map
,以及更好的并发抽象,如未来、承诺、代理、参与者、通道、连接模式等