如何用AI技术降噪? QCon 广州“音视频架构实践”专场给你答案! 了解详情
写点什么

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

  • 2007 年 6 月 10 日
  • 本文字数:1504 字

    阅读完需:约 5 分钟

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

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

关注

评论

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

知识图谱、图数据平台、图技术如何助力零售业飞速发展

蓝海大脑GPU

图计算 图数据分析 图数据一体机

Google搜索为什么不能无限分页?

蝉沐风

elasticsearch 深度分页

HPCA名人堂成员蒋晓维博士,任职大禹智芯首席科学家

硬科技星球

人工智能 阿里巴巴 大禹智芯 蒋晓维

Vue-4-模板语法-1

Python研究所

前端 6月月更

漫谈测试覆盖率

老张

软件测试 质量保障 质量度量

C#入门系列(十) -- 一维数组

陈言必行

C# 6月月更

InfoQ 极客传媒 15 周年庆征文|Socket请求和Http请求特点、区别及适用场景

No Silver Bullet

HTTP请求 6月月更 InfoQ极客传媒15周年庆 Socket请求

Linux编程_网页视频监控项目

DS小龙哥

6月月更

SAAS服务能有哪些优势

Geek_99967b

小程序 SaaS SaaS系统架构

只需八步将小程序一键打包生成App

Geek_99967b

小程序 小程序转app

流程测试支持批量参数导入,测试效率直接拉满!

Xd

数据库 后端 接口测试 测试工具

设计千万级学生管理系统的考试试卷存储方案

Fan

架构师实战营

Python时区转换的两种方式

红毛丹

Python 6月月更

Django API 开发:视图设置和路由

宇宙之一粟

django 6月月更

如何在使用 Flutter时切换应用时隐藏应用预览

坚果

6月月更

InfoQ 极客传媒 15 周年庆征文|【Python技能树共建】异常捕获预处理

梦想橡皮擦

Python 6月月更 InfoQ极客传媒15周年庆

hashmap的底层机制

卢卡多多

集合 6月月更

在线JSON转CSV工具

入门小站

工具

企业无忧 | Apipost私有化部署活动即将火热开启

Xd

后端 apipost 接口测试工具

MySql事务

秋名山码民

6月月更

Vue中created和mounted的区别

devpoint

Vue Vue3 InfoQ极客传媒15周年庆

SpringBoot应用使用自定义的ApplicationContext实现类

程序员欣宸

Java spring springboot Spring Framework 6月月更

ES6新特性class类

大熊G

JavaScript 前端 6月月更

在线文本字符串批量替换工具

入门小站

工具

互联网公司研发效能团队为啥必须独立?何时独立?

laofo

互联网 DevOps cicd 研发效能 工程效率

悬赏任务源码开发设计构建时,要留意哪些事项

开源直播系统源码

源码 软件开发 直播系统 悬赏任务源码

Neo 黑客松获奖名单揭晓,上万美金花落谁家?

TinTinLand

区块链

运算符 (第二天)

Jason199

运算符 js 6月月更

python小知识-python作用域和闭包

AIWeker

Python python小知识

『Three.js』起飞!

德育处主任

JavaScript canvas 前端可视化 three.js 6月月更

浅谈企业自媒体如何才能脱颖而出

石头IT视角

「云智公开课」百度沧海·存储

「云智公开课」百度沧海·存储

JRuby 1.0发布:实现JVM对Ruby的兼容_Java_Scott Delap_InfoQ精选文章