写点什么

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

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

关注

评论

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

Java集合(3)-- iterable接口超级详细解读

秦怀杂货店

Java 源码 Iterator和Iterable 集合 iterable

flink-sql流计算可视化UI平台

无情

sql flink 实时计算 平台

在历史的天空重逢!大话鲲鹏上海记

脑极体

面试官:Redis 主从复制时网络开小差了怎么整?

redis 学习 面试

va_list 可变长参数原理

liu_liu

c 可变参数 va_list

训练营第4周作业

爱码士

训练营

Spring改变版本号命名规则:此举对非英语国家很友好

YourBatman

Spring Boot 语义化 Spring Framework 日历化

我画着图,FluentAPI 她自己就生成了

newbe36524

C# .net .net core netcore

Java集合(2)-- Iterator接口超级详细解读

秦怀杂货店

Java 源码 Iterator和Iterable 集合 Iterator

8.5网络通信基本原理与性能优化

张荣召

学习总结--week08

张荣召

过滤Spark数据集的四种方法

大数志

大数据 spark 数据分析 数据科学

第 4 周作业

Steven

极客大学架构师训练营

Java 集合(4)-- iterable和iterator异同分析

秦怀杂货店

Java Iterator和Iterable 集合 iterable

8.6非阻塞网络I/O

张荣召

每个程序员都应该知道的数字

多颗糖

数据库 计算机基础 存储

【薪火计划】02 - 一将功成万骨枯

码上生长

管理

架构师训练营 1 期 - 第八周总结(vaik)

行之

极客大学架构师训练营

机器学习的产业化变革中,华为云ModelArts的新成绩单

脑极体

超赞!吃透这份Github点赞120k的Java知识面试笔记Offer拿到手软

比伯

Java 编程 程序员 架构 面试

高可用可伸缩微服务架构:基于Dubbo、SpringCloud和ServiceMesh完整蓝光版PDF分享

Java架构追梦

Java 微服务 dubbo Service Mesh SpringCloud

训练营第四周学习总结

爱码士

训练营

高性能-Nginx多进程高并发、低时延、高可靠机制在百万级缓存(redis、memcache)代理中间件中的应用

gmoy-tencent

nginx memcached 分布式缓存 redis cluster 分布式数据库mongodb

限流、熔断与降级

idonkeyliu

后台开发 熔断 限流 降级

Java集合(1)-- 俯瞰Java集合源码以及分类

秦怀杂货店

Java 源码 Iterator和Iterable JAVA集合

架构师训练营第 1 期 第 8 周作业

李循律

极客大学架构师训练营

适合初学者的Web Components教程[2019](译)

西贝

Java Web Component 组件

Java 集合(5)-- Collections源码解析

秦怀杂货店

Java 集合 Collections

【干货】内存条的基础讲解,够用绝大多数情况

亚兰—硅的传奇official

计算机基础 内存 装机 硬件

第5周 技术选型(一)-作业

SuGeek

极客大学架构师训练营

SpringBoot系列(5)- 自定义配置

引花眠

springboot

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