JRuby 1.4 RC1 即将发布,我们来看看新版本都有哪些新特性。
JRuby 团队成员 Nick Sieger 为我们概览了JRuby 1.4 的新特性。除了新的 YAML 支持以及对 1.9 支持的持续改进外,对 1.8.7 的支持工作还在继续。
JRuby 1.4默认使用的是Ruby 1.8.7 。虽然大多数1.8.7 的支持工作已经结束了,但 Charles Nutter 还是解释了目前的外部迭代(增加到了 1.9.x 及 1.8.7 中)如此缓慢以及优化如此困难的原因所在:
Ruby 1.8.7 增加了遍历 Enumerator 的能力。咋一看很不错,它仅仅是个外部枚举。然而问题在于这种枚举的复杂性防不胜防。 Ruby 1.8.7 与 1.9 是通过连续(划界连续,比如 Fibers 或 coroutines)来实现外部迭代的,这使得集合遍历的速度相当的慢。由于 JRuby 中具有一个进程中的#each,因此我们不得不在遍历每个元素后暂停一下,而 Enumerator#next 不得不使用 *new native thread* 来解决这个问题。接下来每个#next 调用通过线程来得到新的结果。
我们希望能看到一个快速的解决方案出来。
JRuby 1.4 在 Java 集成上也进行了不少改进,这样我们就可以轻松从 Ruby 代码中访问 Java 类中的方法。还有其他一些可能的变化,如类型强制的增强,新的方法 java_send( GitHub 提交了该方法),它会接受被调用方法的方法签名。
1.4 中具体的特性集还在不断变化,至于会添加哪些 Java 集成还尚不明朗。
JVM的未来版本将会提升动态语言的执行速度。首个绑定了 JRuby 与 MLVM 且具有动态特性的构建版也已经面世了。
最后,在宣布首届 JRubyConf 即将召开不久之后门票就宣布告罄。现在 EngineYard公布了 JRubyConf 的最终议程,同时还增加了不少席位。
令人兴奋的是,随着赞助商的不断增加以及 Embassy Suites 酒店的大力支持,我们已经将大会的举办地转移了,新会场的容纳量将是现在的两倍之多。
查看英文原文: JRuby Roundup: 1.4 Features, JRubyConf Schedule, MLVM
评论