服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

jruby 1.0发布:实现jvm对ruby的兼容

 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。接下来,我单击“预览”,在底部窗口就可以看见一个重构操作的列表,并伴随当前所选项的异同比较。我可以(而且应该!)使用上/下箭头遍历一遍其中的改变,而且我可以在单击重构按钮应用这些改变之前,去掉我所不喜欢的任何变更[……] 
 

jruby 1.0发布:实现jvm对ruby的兼容

点击查看大图

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

扫描关注微信公众号