限时领|《AI 百问百答》专栏课+实体书(包邮)! 了解详情
写点什么

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:462467
用户头像

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

关注

评论

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

Desktop Curtain for mac(桌面图标隐藏工具)v3.2免激活版

小玖_苹果Mac软件

转转平台IM系统架构设计与实践(二):详细设计与实现

JackJiang

网络编程 即时通讯 IM

美团一面,有点难度

王中阳Go

Go 面试题 美团

从扛着麻袋跑海关,到躺着在家收美金:中国代购的逆袭史oopbuy

代码忍者

“新旗手”三星Galaxy S25系列,再次定义了AI手机的进化方向

Alter

访达窗口查找器Finder Windows for Mac

小玖_苹果Mac软件

在线保护您隐私的小工具Cookie for Mac中文

小玖_苹果Mac软件

JProfiler for Mac(Java开发分析软件)v14.0.5永久激活版

小玖_苹果Mac软件

让AI搜索成为你的工作能力

老张

人工智能 DeepSeek

企业数据虚拟化方案选型指南:构建下一代数据架构的核心逻辑

Aloudata

数据仓库 数据分析 数据架构 数据虚拟化 数据编织

骨骼点检测技术详解:探索机器识别人体动作的奥秘

HarmonyOS SDK

harmoyos

Mac系统优化软件MacPilot for Mac

小玖_苹果Mac软件

好用的 Mac 视频下载工具Downie for Mac

小玖_苹果Mac软件

如何在通义灵码里用上DeepSeek-V3 和 DeepSeek-R1 满血版671B模型?

阿里巴巴云原生

阿里云 云原生 通义灵码 AI程序员

如何在通义灵码里用上DeepSeek-V3 和 DeepSeek-R1 满血版671B模型?

阿里云云效

阿里云 云原生 通义灵码 AI程序员

可灵视频生成可控性为什么这么好?快手又公开了四篇研究

快手技术

快手 #大模型 视频生成 可灵AI

macOS稳定快速的视频转换器Cisdem Video Converter

小玖_苹果Mac软件

文件夹比较工具Naarak Studio DirEqual for Mac中文激活版

小玖_苹果Mac软件

Eudic欧路词典 for Mac(英语词典翻译查询工具)v4.8.1激活版

小玖_苹果Mac软件

2024年央国企数智化转型案例持续征集中

信通院IOMM数字化转型团队

数字化转型 数智化转型 案例征集 央国企数字化转型

DeepSeek V3/R1满血版,上线华为云

华为云开发者联盟

人工智能 大模型 昇腾云 DeepSeek

视频下载工具PullTube for Mac中文

小玖_苹果Mac软件

媒体文件格式转换器Permute for mac

小玖_苹果Mac软件

Rubinius 1.0驾临_Ruby_InfoQ精选文章