InfoQ

新闻

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

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

社区
Ruby
主题
动态语言,
技术,
语言,
运行时
标签
IronRuby,
Rubinius,
Google编程之夏,
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++

深度内容

和Google互补的搜索引擎Wolfram|Alpha

Wolfram|Alpha与Google究竟是什么关系,Wolfram|Alpha自己是如何定位的?Wolfram|Alaph在多大程度上是语义网搜索呢?InfoQ中文站就等等这些问题采访了Wolfram研究公司中国区商务经理王翔。

SOA契约成熟度模型

本文说明了所推荐的契约版本管理设计策略是如何与SOA成熟度模型发生联系的。文章目的是为实现版本管理和可组合性提供一个路线图。

数据服务简介

Vijay Narayanan在这篇文章中对数据服务的几个方面进行了介绍,它们都是SOA实践者和数据架构师感兴趣的内容。本文对数据服务的几个方面进行了介绍,包括需求定义,基本原理和好处、范围、开发以及消费模式。

分块云计算

在本文中,Jimmy Nilsson描述了一种他在过去数年间观察到的一种正在缓慢成长的架构风格,他把这种风格称为“分块云计算”。

豆瓣网技术架构变迁

罗马不是一天建成的,豆瓣的技术架构也是随着用户规模的增长一直在持续变化中。在本次演讲中,豆瓣的首席架构师洪强宁将与大家一起分享从上线时的单台服务器架构开始一直到现在的豆瓣架构变迁历程。

融合思想:深入探索S#arp架构

Billy McCafferty展示了S#arp架构,它在ASP.NET MVC框架的基础上,荟萃了当今的最佳实践,应用在ASP.NET Web应用程序的架构设计中。

王雷谈开源以及新兴市场计划

中国作为新兴市场中的新兴市场,是Sun在美国之外实施SSE(SUN Startup Essentials)项目重点关注的地区。在QCon Beijing 2009期间,InfoQ中文站有幸对此项目的负责人王雷先生进行了采访,探讨了关于开源、新兴市场、SSE等话题。

使用HTML5构建下一代的Web Form

HTML5 是由 WHATWG发起的,最开始的名称叫做Web Application 1.0,而后这个标准吸纳了Web Forms 2.0的标准,并一同被W3C组织所采用,合并成为下一代的HTML5标准。