写点什么

JRuby 1.0 发布:实现 JVM 对 Ruby 的兼容

2007 年 6 月 10 日

JRuby 1.0 刚刚发布。该项目的代码贡献者 Ola Bini 在博客中写到:

[……]JRuby 1.0 是我们项目的一个重大里程碑,我们对 1.0 版本一直以来的目标就是 Ruby 的兼容性,而我们认为这个目标已经实现。当我们看见像 ThoughtWorks 一样的公司为其提供商业支持的时候,我们就知道这个敏捷表已经实现了……当然,要注意的很重要一点就是,JRuby 1.0 并非所有 Ruby 解释器的终结者,它并不完美,一切才刚刚开始。现在我们拥有一个非常良好的基础平台可以在之上继续工作,而这才是真正任务的起点。加入我们吧!这会成为一次很有趣的旅程,而 JRuby 今后只会越变越好!

这个发布版本的产生,自代码贡献者 Charles Nutter 和 Thomas Enebo被 Sun 招至旗下之日起历时九个月。其间,另外一名代码贡献者 Ola Bini 也成为了 ThoughtWorks 帐内一员,致力于 JRuby 开发。

这个发布版以“Ruby 兼容”为主打口号,所有和 Matz 的 Ruby 实现(MRI)不能兼容的已知 JRuby Bug 都得到了解决。应用程序基本上可以不加修改直接运行。Charles Nutter 在博客中详细介绍了 JRuby 1.0 之后的开发进程。总结如下:

性能
在过去的一年中,运行速度已经得到了数量级的提升,并且 JIT 编译器已经实现。开发团队将继续改善 JRuby 的运行速度和性能。

Java 集成
目前,我们已经可以调用 Java 的代码库,实现 Java 接口,并且扩展 Java 类,但边界情况还是存在。1.1 版本的目标之一就是提供一个重新设计的集成 API。

Ruby 2.0 及 Rubinius
在近期内支持 Ruby 2.0 和 Rubinius 字节码的执行是主要目标之一。

Nutter 还把触手伸到了社区之中。JRuby 是一个社区项目,由社区参与所维系。他明确提到了在 RubySpec 上做出的努力:

[……]RubySpec 是构建一份由社区驱动的 Ruby 规范的一项努力。RubyDoc 提供了对它的链接,并且它很快成为社区记录语言和代码库行为的一种标准方式。我相信这是让我们协作完成关于 Ruby 行为的一份完整规范的最佳最快的方式……我也相信这样的一份规范正在变得异常重要,因为现在 Ruby 存在的 5-10 个不同的实现,每个实现都在揣测到底什么是“正确”的 [……]

与此相关的是,ActiveRecord-JDBC 0.4 也随着 JRuby 1.0 一起发布了。ActiveRecord-JDBC 是一个用于 Rails 的 ActiveRecord 组件的数据库适配器,可以在 JRuby 中使用。本质上,它能让 JRuby on Rails 应用使用所有和 JDBC 兼容的数据库。0.4 版加入了以下特性:

  • 对 PostgreSQL(Dudley Flander 的贡献)以及 HSQL(Matthew Williams 的贡献)的支持;
  • 使用DATE对 Oracle 的时间戳问题进行修正(和其它数据库相同);
  • Derby 修正:修正了开放结果集问题(open result set issue),更方便地进行结构转存(structure dump)、引号支持(quoting)和变更字段类型;
  • Sybase 类型识别修正(Dean Mao 的贡献)。

Sun 在 Ruby 上所做的努力并不只是包含 JVM 下的运行时。最近 6 个月内,Sun 的 Tor Norbye 也为 Netbeans IDE 带来了许多有重大意义的 Ruby 支持新特性。上周他还加入了查找使用点(Find Usages)和重构支持:

[……] 举例说,我希望把我 Rails 应用的控制器中的@comments域重命名。我用右键单击一下,然后选择一个新的名称并单击 OK。接下来,我单击“预览”,在底部窗口就可以看见一个重构操作的列表,并伴随当前所选项的异同比较。我可以(而且应该!)使用上 / 下箭头遍历一遍其中的改变,而且我可以在单击重构按钮应用这些改变之前,去掉我所不喜欢的任何变更 [……]

这些特性存在于Netbeans 最新的开发构建版本中,可以在 nbextras.org 中以 Ruby IDE 的形式找到。此外,你可以在 Netbeans Wiki 上找到更多的详细安装指南。

查看英文原文: JRuby 1.0 Released: Bringing Ruby Compatibility to the JVM

2007 年 6 月 10 日 20:00293
用户头像

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

关注

评论

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

第七周作业

andy

极客大学

架构师训练营 -- 第七周作业

stardust20

ZK 从入门到放弃 入门篇

小隐乐乐

可读代码编写炸鸡九 - 抽取子问题

多选参数

编程 代码 代码优化 代码规范 可读代码

最短路径问题(无负边值)——Dijkstra算法

烫烫烫个喵啊

算法 prim 最短路径

Redis(二)单机版安装

奈何花开

Java redis

Elasticsearch源码解析:环境搭建

Jackey

elasticsearch

广义表的实现!

烫烫烫个喵啊

算法 广义表

架构师是怎样炼成的 7-1 性能测试与优化

闷骚程序员

百度CTO王海峰对话王辰院士:全球“最强大脑”助力大数据抗疫时代来临

脑极体

排序笔记

烫烫烫个喵啊

算法 排序

寻找感动的养分

一直AC一直爽

感恩 随笔杂谈 感动

剪刀爱情

一直AC一直爽

电影

读《我的大学,我的苦难》有感

一直AC一直爽

随笔杂谈 读后感

【源码系列】Spring Cloud Gateway

Alex🐒

源码 SpringCloud Gateway

你的个人博客网站该上线了!

北漂码农有话说

redis系列之——缓存穿透、缓存击穿、缓存雪崩

诸葛小猿

redis 缓存穿透 缓存击穿 缓存雪崩

week7 学习总结

Geek_2e7dd7

公开课 | 吉祥人寿从0到1的 Jira 落地实践

Atlassian

敏捷开发 研发管理 Jira

性能测试

陈皮

HashiCorp官宣:禁止国内使用其旗下Consul等开源软件?

xcbeyond

Consul 条款

一千万个身份证号在java中需要多少内存

华宇法律科技

Java string heap memory

多线程为了同个资源打起架来了,该如何让他们安定?

小林coding

并发编程 多线程 操作系统 计算机基础

第七周总结

andy

极客大学

我有一个梦想

一直AC一直爽

随笔杂谈 梦想

爸爸,我想握住你的手

一直AC一直爽

随笔杂谈 父爱

三分钟热度的干劲

落曦

布隆过滤器是个啥!

诸葛小猿

布隆过滤器 bloomfilter bloom filter

week7 作业

Geek_2e7dd7

思维模型盲区:所知障和从众效应

石云升

思维模型 倾听 从众效应

轻松应对并发问题,简易的火车票售票系统,Newbe.Claptrap 框架用例,第一步 —— 业务分析

newbe36524

容器 微服务 架构设计 .net core ASP.NET Core

浅谈量子计算平台架构实践

浅谈量子计算平台架构实践

JRuby 1.0发布:实现JVM对Ruby的兼容-InfoQ