写点什么

Rubinius 1.0 驾临

  • 佚名

  • 2010-05-26
  • 本文字数:2411 字

    阅读完需:约 8 分钟

长时间的等待之后,开发者终于迎来了 Rubinius 1.0 。项目团队花费了三年半的时间完成 1.0 版,并且提供了部分承诺的特性。Rubinius 极力向开发者宣传它的各种新特性,包括:

  • 支持大量的 Ruby 代码和流行的 C 插件:
    • Rails 3 和 2.3.5
    • Sinatra
    • sqlite3、mysql、nokogiri 和 yajl-ruby
    • 数不胜数的其他插件
  • 加速 Ruby 代码运行速度的 JIT 编译器。
  • 新一代的垃圾收集器。
  • 集成剖析器。

我们之前曾经报道过 Rubinius,例如在 RubyConf 2009 上采访 Evan Phoenix 并且询问项目的进展情况。我们也撰写了 Ruby 标准展望,其中 Brian Ford 阐述了 Rubinius 是如何紧紧和标准联系在一起的。时至今日,我们又采访了 Brian Ford 和 Evan Phoenix,就 Rubinius 1.0 现在和未来交换了意见。

既然 Rubinius 1.0 已经发布,我们希望知道这个发布版对于 Rubinius 的现在和未来意味着什么:

我们花费在 1.0 版的四年时间是非常值得的。你可以看到,在这四年中,我们不仅完成了一个能够和 1.8.7 兼容的 Ruby 运行时,而且还应用了加速动态语言的最新研究成果,这些成果包括新一代的垃圾收集器和集成的 JIT 编译器。我们希望尽可能地使用 Ruby 来编写代码,即便可能有一些性能损失。这是因为 Rubinius 是使用 ruby 来实现方法,而 MRI 是使用 C。但是,我们一直致力于性能的改进,这就是你所看到的 Ruby 和 C 在性能上的竞争情况。

和现存的 Ruby 框架兼容情况:

完全兼容。在以某种方式运行 Sinatra 程序的时候会出现一个诡异的 bug,不过现在我们已经解决了。我们会将用户反馈的任何框架相关的 bug 的优先级设置为最高,然后在下一版本中解决。

当我们询问 Rubinius 对现存 Ruby gems 支持问题的时候,他们说:

如果是纯 Ruby gem 的话,那么没有兼容性问题。我们也支持大量使用 C 扩展的 gem,例如 Nokogiri 或 Mongrel 等等。不仅如此,我们一直将一些并不支持的扩展移植到支持的 API 上。其实,有些 API 不能够支持的原因是这些 API 直接将某些结构体的指针暴露出来了,而这些结构体在 MRI 中被当做内部类使用。比如。RHASH() 支持开发者访问一个‘st’结构体指针,这个结构体被 MRI 用于实现 Hash 类。由于我们不用手动使用 st 来实现 Hash,所以不需要暴露这个指针。因此我们重写了 API,在提供相同功能的同时也避免了这些情况。

我们也听说 strings 在 Rubinius 的性能有下降。考虑到 strings 在 Ruby 程序中使用率非常高,我们希望能够知道现在 Rubinius 能够给我们带来什么,以及它的未来发展会是如何:

说所有的 string 性能都比 1.8.x 有下降是不准确的。String 的大部分方法性能都至少和 1.8 相当。仅仅是一部分性能较慢,例如 tr、gsub 和 unpack。我们现在非常积极地改进这些性能缓慢的方法。

性能问题一直是一个值得关注的话题。当 InfoQ 问到为何 Rubinius 是比其他 Ruby 实现,例如 MRI 1.8.x/1.9.x 和 MacRuby 更加值得选择的时候,他们回答道:

Rubinius 运行 Ruby 代码的速度极快,如果可以使用纯 ruby 代码实现的算法做基准测试的话,Rubinius 肯定稳居榜首。由于我们独特的 JIT 技术,我们能够提供比 MacRuby 更加优异的性能。这项技术能够高效地利用程序剖析信息,从而产生更加快速的机器代码。

开发者看到 Rubinius 性能较低的时候是因为 Rubinius 正在运行一些核心类的代码。我诚恳地请求开发者能够在我们的问题跟踪器中发布关于性能缓慢的报告,或者能够直接向#rubinius 反馈。每一个发布版都会着重解决性能问题,最终目标是Rubinius 的所有核心类方法的性能都要比1.8 中的要优秀。

Rubinius 是一个开源项目,它的发展和成功得益于活跃社区的贡献。社区给予 Rubinius 非常大的帮助:

我们非常高兴地看到我们开放的代码库也协助开发者持续为我们的项目做出贡献。并且,系统的绝大部分是使用 Ruby 实现,我们可以快速地增加和调试功能,然后提供给用户新的特性。

社区最大的好处就是它能够即时帮助我们测试代码以及发出反馈。这将帮助我们快速成长和克服困难。

当问到近期和远期分别可以对这个项目抱有什么期望的时候,他们回答说:

我们已经计划发布下一个 bug 修复版。1.0.1 将会在下周发布(5 月 24 日这周),并且会修正 1.0 版中很多 bug。

我们另一个高优先级的任务就是第一个新特性版本:1.1,它增加了调试器。我最近将大部分精力放在这个版本上,它很快就会发布。这个版本将调试器紧密集成在一起,我想用户会非常喜欢它的。

开发者可以在 Google Group 的 rubinius-dev 群中自由交流。

更多关于 Rubinius 的信息可以在 Rubinius 官方网站上找到,Rubinius 的源代码可以从 Github 代码库中下载。

查看英文原文: Rubinius Turns 1.0

2010-05-26 10:462330
用户头像

发布了 90 篇内容, 共 35.6 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

华为发布全面自研密码套件及全场景智慧前端框架开源项目

科技热闻

学会用AI:释放创意,解放双手,工作再多也不慌

飞算JavaAI开发助手

OP链丨ARB链代币合约质押模式系统开发

l8l259l3365

深入浅出线程池 | 京东云技术团队

京东科技开发者

Java 线程 线程池 企业号9月PK榜

软件测试/测试开发丨利用人工智能ChatGPT完善个人简历

测试人

人工智能 程序员 软件测试 简历 ChatGPT

OpenHarmony应用开发—ArkUI组件集合

OpenHarmony开发者

OpenHarmony

AI无处不在,酷睿Ultra处理器与剪映深度优化助力AI抠像功能

E科讯

爱采购点亮中国工博会,数智赋能引领工业未来!

科技热闻

国内首家!阿里云 Elasticsearch 8.9 版本释放 AI 搜索新动能

阿里云大数据AI技术

阿里云 开源

“中国心”十佳发动机专家评委团走进奇瑞 开启混动性能“芯标准”

科技热闻

苹果电脑版文件搜索推荐 HoudahSpot激活中文最新

胖墩儿不胖y

Mac软件 文件搜索 搜索工具 mac文件搜索软件 文件搜索软件

HarmonyOS如何使用异步并发能力进行开发

HarmonyOS开发者

HarmonyOS

异常检测:探索数据深层次背后的奥秘《中篇》

汀丶人工智能

数据挖掘 机器学习 异常检测

龙蜥白皮书精选:机密计算平台技术

OpenAnolis小助手

开源 操作系统 白皮书 龙蜥社区 机密计算

“全球金牌课程”10月21-22日 · CSM认证在线周末班【提前报名特惠】CST导师亲授

ShineScrum

QSDK-QCA9890, QCA9892 and MTK-MT7915- Different wireless chips - different characteristics and uses

wifi6-yiyi

QSDK MTK

浅谈终端安全接入

权说安全

修复 Spring Boot Actuator 未授权访问问题的指南

Apifox

Java Spring Boot 后端 Spring Boot Actuator 授权访问

Rubinius 1.0驾临_Ruby_InfoQ精选文章