InfoQ

新闻

Ruby实现的近况:Ruby规范, 新的设计会议, Rubinius使用C++

作者 Werner Schuster译者 贾晓楠 发布于 2008年5月5日 上午1时48分

社区
Ruby
主题
动态语言,
技术,
语言,
运行时
标签
Ruby 1.9,
Google SoC,
IronRuby,
Rubinius,
JRuby
许多开发者正在致力于各种Ruby运行时的开发,比如Ruby 1.8.x、Ruby 1.9.x、Rubinius、JRuby、IronRuby,以及其他Ruby实现。为了协调它们的兼容性和未来的Ruby平台,召开了Ruby设计会议

第一次设计会议是在4月21日召开的(查看第一次Ruby设计会议的IRC记录)。讨论的主题包括:

下一次设计会议定在4月30日——查看Ruby Design Wiki来获得下次Ruby设计会议的日程和细节
Ruby规范的工作同样也是两个Ruby Google Summer of Code (GSoC) 2008项目的主题:

Rubinius项目着重强调了RubySpec。其开发者花了大量的时间写出了可执行的Ruby规范。Rubinius最新的进展是Evan Phoenix把内核VM (称为“shotgun”)从C移植到了C++。需要提醒的是,虽然Rubinius的目标是(几乎全部)用Ruby来写一个Ruby实现,但是核心VM还是用C——现在是C++来写的。除了这个用C++写的VM,Evan Phoenix还解释了Rubinius团队为什么要坚持“Ruby in Ruby”理念

现在,Rubinius大约有150人拥有贡献权。他们绝大部分工作都是和内核相关的,因为内核是整个系统中最大的部分。其 中大约有95%的工作是写Ruby代码。这意味着对于几乎所有的贡献者来说,为Rubinius工作就是写Ruby代码。于是对他们来说,这就是Ruby in Ruby。

Brian Ford,也是Rubinius项目中的一员,提供了更多的信息

在新的C++ VM(大体上已完成了)中,我们有12,619行C++代码。而在内核目录中,我们有23,882行——没错——Ruby代码。
 [..]
C VM (称为shotgun)并不是我们最终的目标,下一代的C++ VM也不是。他们只是迈向更高目标过程中的实用步骤。明确地说,我们目前还没有用C实现大量的内核方法。最近我完成了两份重写的工作,引入了许多基元 (primitive:直接访问VM的C代码段)。其中一份工作是查找表(LookupTable),由于在VM中大量使用,所以它是用C写的。而且 Ruby代码也可以使用它,因为我们用Ruby写了很多东西,比如与方法相关的东西以及常量查找。查找表用起来很像一个哈希,而把它与哈希区分开会令哈希 更加单纯,甚至可以让更多的哈希都用Ruby来写。

注意:Evan和Brian的博客文章都回应了由JRuby的Charles Nutter所写一篇文章,文中包括他关于Rubinius的“Ruby in Ruby”理念的争论

查看原文Ruby Implementations Roundup: Ruby Spec, New Design Meetings, Rubinius uses C++

没有回复

回复

独家内容

开发者眼中的Android手机平台

在四月份的Beijing Openparty上,InfoQ中文站特邀编辑仝健对三位开发者进行了采访,请他们从开发者角度谈一下对Android的认识和感觉。

智能服务契约带来的巨大伸缩性

可伸缩性并不是无状态设计倾向假设的那个布尔值(译注:一般都认为无状态设计的伸缩性好,此处暗示布尔值为True)。Udi的团队使用服务契约来处理多维度的伸缩性问题,避免了二次失败。

使用NetKerne实现REST风格的ESB

Jeremy Deane对使用NetKernel来编写REST风格的ESB应用做了一番深入的研究。他详细地剖析了选择商业ESB应用的决策过程,以及最终如何使用NetKernel来实现该应用。

多个敏捷团队之间的版本控制

当多个敏捷开发团队在同一个代码库上进行工作时,如何在保证混乱最小化的同时,还能在每个迭代结束时拥有一个干净的、可发布的软件版本?Henrik Kniberg在本文中罗列出了在“Scrum and XP from the Trenches”迷你书中所使用的策略要点。本文并非为版本控制专家编写,而是为我们这些希望进行简单、有效的协作的人所准备的。

想快快喝下Google果汁——Guice吗?

依赖注入出现已经有一段时间了,很多团队都在重构自己的应用以利用DI。但这是一件麻烦的事情。在这篇文章中,Paul Hammant说明了如何将现存应用从单件嵌套设计转为完全成熟的DI设计。

Scrum实施情况调查之案例分析

前不久,InfoQ中文站上发表了一篇文章:Scrum在中国——企业实施情况调查实录,引起了激烈争论。在本文中,作者通过对调查实录中案例的分析诊断,探讨了敏捷开发方法的概念及应用。

Jim Marino与Meeraj Kunnumpurath专访:关于SCA和Fabric3

BEA发布了在WebLogic 10.3中支持的SCA技术预览版,它是以开源的Fabric3运行时为基础构建的。InfoQ对Jim Marino和Meeraj Kunnumpurath进行了专访,前者是BEA Systems的技术主管,后者是VocaLink的首席技术人员。我们就他们对SOA和SCA的看法,VocaLink实施SOA的方法和这个技术的关键优势进行了讨论。

Ruby调试器一览

在Ruby世界中流行着一个误解:Ruby没有调试器。这是明显的错误——Ruby不但有调试器,还有供调试器用的GUI和API。InfoQ仔细调查了Ruby世界中调试器的现状——发现Ruby的调试功能支持已经很好了。