【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

采访 XRuby 开发者:“有趣的”Ruby 实现

  • 2007-04-26
  • 本文字数:1505 字

    阅读完需:约 5 分钟

近日 InfoQ 中文站对 XRuby 项目的开发者郑晔进行了一次采访。郑晔介绍了XRuby 项目的基本情况和发展方向。

目前在Java 平台上实现Ruby 语言的项目主要有两个: JRuby 和 XRuby。二者的差别主要在实现技术上。JRuby 目前为止是一个解释器,而 XRuby 是一个编译器。所以,二者的差别就是解释器和编译器的差别。郑晔说:

解释器和编译器,在前端部分都是相同的编译器前端技术,包括词法分析、语法分析、建立语法树等等,主要的差别在于执行的方式不同。解释器是直接执行一个其内部的可执行结构,比如 Ruby 现在的实现就是中间生成一个树,这棵树就是 Ruby 内部的可执行结构,然后执行这棵树,而编译器是生成目标平台的可执行代码,比如我们常见的编译器生成对应平台的可执行文件。由此可见,二者的执行方式并不是在同一个级别上执行的,一个是平台之上利用软件构建的执行引擎,一个是利用平台(硬件或虚拟机)执行,所以,性能上会有一些差别。简单说来,XRuby 生成的代码直接运行在 JVM 上,而 JRuby 在 JVM 上构建了一个执行引擎来执行程序,而且是 Ruby 现在实现得不那么好的那个执行引擎。所以,XRuby 目前在性能上可以领先 JRuby 许多。

测试数据表明,XRuby 的性能超过了 Ruby1.8.5 版本。在

最近进行的一次性能评测中,XRuby 由于尚不支持 YAML 而没有参加,JRuby 与 Ruby1.8.5 之间还存在较大的性能差距。

Ruby 解释器 使用笔记本电池 耗时 ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-linux] 31.0 +/ 3.1 ruby 1.9.0 (2007-04-18 patchlevel 0) [i686-linux] 31.1 +/ 3.27 ruby 1.8.5 (2007-04-23 rev 3539) [i386-jruby0.9.9] 67.5 +/ 7.15 使用外接电源 ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-linux] 12.0 +/ 1.2 ruby 1.9.0 (2007-04-18 patchlevel 0) [i686-linux] 12.4 +/ 1.8 ruby 1.8.5 (2007-04-23 rev 3539) [i386-jruby0.9.9] 33.3 +/ 6.83

较早前

InfoQ 的另一篇报道详细介绍了 XRuby 与 JRuby 的技术差异。

但由于发展时间较短,XRuby 现在还达不到实用的要求。虽然已经可以运行一些程序了,但距离完整支持 Ruby,还有很长的一段路要走。XRuby 0.2.0 的目标是支持单元测试框架,XRuby 团队计划在年底可以支持 Rails。在语言特性方面,XRuby 也并未完全实现 Ruby 所有的语言特性,因为 Ruby 某些语言的特性是与 builtin 库结合在一起的(比如 method missing 等),而 XRuby 现在目前最大的问题就是 builtin 库的实现。郑晔这样介绍:

因为 JVM 平台本身并不支持动态语言的特性,所以,在 XRuby(包括 JRuby)需要用 Java 代码构建出一个动态语言支撑的结构,也就是我们所说的 Runtime。现在这个 Runtime 是我实现的,基本上是按照 C Ruby 的结构进行实现,因为我之前翻译了《Ruby Hacking Guide》,对 C Ruby 的动态语言 Runtime 有一定的了解。其实,支持这些特性本身难度并不大,但是需要大量的时间和精力来做这件事情,这也是 XRuby 最为欠缺的资源。

在谈及 XRuby 项目的发展时,郑晔说道:

XRuby 在某些方面进行的一些工作,会比较有趣,比如正在开发的 Antlr V3 前端和调试器等等。这些方面对于在 JVM 上实现动态语言是一个比较有益的探索。XRuby 本身起步时,考虑得更多的是乐趣,参与者都是因为乐趣加入其中的。所以,我想说,XRuby 的一个很大的优点就是它还年轻,其中有很多可以做的有趣事情。短时间之内,我们不敢奢望有人可以把 XRuby 用于实际的项目。现阶段,我们只是希望赢得更多的关注,吸引更多的人加入到 XRuby 的开发中来,这样,可以尽快实现 XRuby 的目标。

JRuby 的开发者 Ola Bini 之后,郑晔也加入了

ThoughtWorks 公司。XRuby 这个“有趣的”Ruby 实现未来会怎样,我们拭目以待。

2007-04-26 23:291139
用户头像

发布了 21 篇内容, 共 29222 次阅读, 收获喜欢 2 次。

关注

评论

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

快速理解DDD领域驱动设计架构思想-基础篇 | 京东物流技术团队

京东科技开发者

架构 微服务 DDD 架构设计 企业号9月PK榜

从计费停复机运营再谈周期性业务的优化思考

鲸品堂

运营商 计费模式 电信运营商 企业号9月PK榜

比sentry还要香的监控系统

Yestodorrow

可观测性

KaiwuDB 携手 IoT 领域合作伙伴发布“1+X”工业互联网联合解决方案

KaiwuDB

IoT KaiwuDB

LRTimelapse for Mac(延时摄影视频制作工具) 6.5.2中文汉化版

mac

苹果mac Windows软件 lrTimelapse 延时摄影视频制作软件

HarmonyOS实现静态与动态数据可视化图表

HarmonyOS开发者

HarmonyOS

智能可观测性如何赋能智能汽车主机厂

博睿数据

可观测性 汽车 博睿数据

阿里十年总结之软件测试的价值

阿里技术

软件测试 质量

直播系统源码部署,高效文件管理与传输的FTP协议

山东布谷科技

软件开发 ftp 直播系统源码 文件传输协议 媒体文件

软件测试丨建立质量保障体系,软件质量提升90%!原来是这个秘诀

测试人

程序员 质量管理 软件测试 自动化测试 质量体系

研发挑战的本原

iSoftBook

研发团队 研发效能管理 研发管理软件 研发管理平台 敏捷方法

OpenHarmony应用开发之自定义弹窗

OpenHarmony开发者

OpenHarmony

官宣!玖章算术获评“浙江省创新型中小企业”

NineData

数据管理 玖章算术 NineData 创新型中小企业 2023年

成为网安云产品推广大使,兼职月入3w不是梦!

网安云

chatglm2-6b在P40上做LORA微调 | 京东云技术团队

京东科技开发者

人工智能 大模型 ChatGLM2-6B 企业号9月PK榜

弹性数据库连接池探活策略调研(一)——HikariCP | 京东云技术团队

京东科技开发者

数据库 HikariCP 数据库连接池 企业号9月PK榜

Seal梁胜:近水楼台先得月,IT人员应充分利用AI解决问题

SEAL安全

DevOps 技术大会 平台工程 平台工程大会 企业号9月PK榜

企业采用生成式AI的三大挑战:可信性、隐私保护、偏见消除

技术咖和技术渣

人工智能 生成式AI

性能调优建议与技巧

NGINX开源社区

OpenSSL 3.0.0 设计(五)|遗留问题、遗留 Provider 模块、ENGINE API

铜锁开源密码库

翻译 密码学 密码学和算法 openssl 铜锁

跨越2000公里,15岁少年的云上逐梦

华为云开发者联盟

开发者 华为云 华为云开发者联盟 企业号9月PK榜

KaiwuDB 受邀亮相 2023 中国国际“软博会”

KaiwuDB

KaiwuDB 软博会

恶意爬虫防护 | 京东云技术团队

京东科技开发者

爬虫 安全 爬虫软件 企业号9月PK榜 爬虫防护

采访XRuby开发者:“有趣的”Ruby实现_Ruby_Jeff Xiong_InfoQ精选文章