写点什么

JRuby 1.0 丰收在望

  • 2007-04-04
  • 本文字数:1339 字

    阅读完需:约 4 分钟

自从约一个月以前 JRuby 0.9.8 发布以后,与 JRuby 进展的相关消息似乎变得消声匿迹了。但是,来自 JRuby 阵营的最新消息让我们的疑团烟消云散:整个 JRuby 团队正在快马加鞭,希望赶在JavaOne 开始之前发布JRuby 1.0

在他的最新博客文章中, Charles Nutter 向大家展示了第一个产品级发布将带来的一些令人振奋的改进。其中,性能的提升非常引人瞩目:

……目前主干代码的性能比 0.9.8 版的性能提升了两倍(……)。此外,编译器支持的语法构造几乎达到 0.9.8 版的两倍,且每天它都朝着更快更稳定的方向迈进。即便仍属解释执行,事实上有不少 benchmark 显示它比 MRI(Ruby 的 C 语言版本)运行得还要快。

另外一条重磅消息是,目前 Rails 的 ActiveRecord 已经完全被 JRuby 支持。剩下的最后一些不能通过的测试最终也已得到修复,所有单元测试都大亮绿灯。现在 JRuby 上已经能够安全运行使用 MySQL 的 Rails 应用程序。

InfoQ 对 JRuby 团队成员 Ola Bini 进行采访,详细了解了最新 ActiveRecord 里程碑的相关信息:

JRuby 团队从什么时候开始着手对 ActiveRecord 的支持工作?

老实说我们并没有那么做。除了在测试中寻找 bug 以外,对 ActiveRecord 本身我们什么都没动。自打去年六月,我们开始入手 ActiveRecord-JDBC 项目(下文中简称 AR-JDBC)。 这个项目是一个仅在 JRuby 中可用的 ActiveRecord 适配器,使 ActiveRecord 可以与 JDBC(标准的 Java 数据库连接框架)一起工作。这个项目是非常有意义的,因为 JRuby 不可能使用 Rails 使用的常规驱动程序。因此我们已经让 AR-JDBC 正常工作一段时间了。在发布 0.9.8 时我们就打算宣布对 Rails 的支持,不过当时还是存在一些不能通过的 Rails 单元测试;实际上这些问题绝大部分出现在 ActiveRecord(在 1100 个测试中大约出现 50-60 个错误和故障)。于是上周我决定首先为 MySQL 解决这些问题,随后 AR-JDBC 和 JRuby 就得到几处修正。正如原来声明中所说,我们非常高兴地宣布 MySQL 已经得到完全支持。

最难以实现的功能有哪些?

我认为最棘手的事情有两样:首先就是 ActiveRecord 测试。在很多地方这些测试是非常不错的,但是还有一些测试依赖于 hash 排序和另外一些更稀奇古怪的东西。这就搞得我们很难判断那到底是一个真正的故障或者只是一个实现得比较诡异的测试。其次,ActiveRecord 对来自数据库的数据、quoting 和其它方面进行了大量处理。要搞定这些并不是一件容易的事情,对于日期和时间信息尤其如此。但是,这些测试对于问题的修正非常有用。

JRuby 接下去的开发工作会是什么?

目前我们努力的方向是性能和正确性。希望能在五月的某天发布 1.0,到那是我们的目标就是更高的速度和正确性了。=) 我们所做的是修复所有发现的 bug,尝试确定 Java 整合最终将变成什么样子,此外就是 Java 字节码编译器了。所以说,五月份的时候,JRuby 就是一股不容小觑的力量了。

提一个八卦问题:你最近刚刚接受了 ThoughtWorks 的工作机会。关于你在 ThoughtWorks 里与 JRuby 相关的项目,你能不能向大家透露一些口风?

啊,这还不能说。我要到 6 月 4 日才正式入职,在那之前我只是非正式地给几个项目帮忙,但大部分还不能公之于众。我现在可以说的是,在我的 ThoughtWorks 工作正式开始以后,我将着手于 JRuby 和 Ruby 的一些很不错的事情上。

2007-04-04 20:00926
用户头像

发布了 117 篇内容, 共 17.7 次阅读, 收获喜欢 0 次。

关注

评论

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

react源码中的hooks

flyzz177

React

前端面试什么样的回答才能让面试官满意

loveX001

JavaScript

假如问:你是怎样优化Vue项目的,该怎么回答

bb_xiaxia1998

Vue

运维进阶训练营 -W07H

b1a2e1u1u

运维

经常会采坑的javascript原型应试题

loveX001

JavaScript

用javascript分类刷leetcode3.动态规划(图文视频讲解)

js2030code

JavaScript LeetCode

【圣诞节】会呼吸的玫瑰爱心代码 -李峋爱心续 动画演示思路 代码开源

非喵鱼

Java Python 程序员 前端 爱心代码

React源码分析8-状态更新的优先级机制

flyzz177

React

React源码分析7-state计算流程和优先级

flyzz177

React

react源码中的协调与调度

flyzz177

React

react面试题合集

beifeng1996

React

什么是CodeArts

华为云开发者联盟

云计算 后端 华为云 12 月 PK 榜 软件开发生产线

设计模式之美——单一职责(Single Responsibility Principle)

GalaxyCreater

设计模式

前端二面常考面试题(必备)

loveX001

JavaScript

前端工程师leetcode算法面试必备-二叉树的构造和遍历

js2030code

算法 LeetCode

从React源码分析看useEffect

flyzz177

React

前端工程师leetcode算法面试必备-二叉树深度广度遍历

js2030code

JavaScript LeetCode

React组件之间的通信方式总结(下)

beifeng1996

React

前端必会react面试题及答案

beifeng1996

React

CartoonGAN论文复现:如何将图像动漫化

华为云开发者联盟

人工智能 华为云 12 月 PK 榜

es6中箭头函数解析

达摩

ES6 箭头函数

架构实战营模块二作业

张Dave

异构混排在vivo互联网的技术实践

vivo互联网技术

算法 异构 混排

记一次Mysql大数据分页优化问题

石臻臻的杂货铺

MySQL 数据库

谈谈前端性能优化-面试版

loveX001

JavaScript

那些你不知道的 CSS 自定义形状网格布局 3

南城FE

CSS 前端 布局

OpenTelemetry系列 (二)|初探OpenTelemetry

骑牛上青山

Java 调用链 OpenTelemetry 微服务调用链

0停机迁移Nacos?Java字节码技术来帮忙

华为云开发者联盟

Java 云计算 华为云 12 月 PK 榜

软件质量问题造成损失高达 2.4 万亿美元!

SEAL安全

软件质量 漏洞管理 12 月 PK 榜 软件供应安全

React组件之间的通信方式总结(上)

beifeng1996

React

react源码中的fiber架构

flyzz177

React

JRuby 1.0丰收在望_Java_Alexis Midon_InfoQ精选文章