论坛首页 编程语言技术论坛

JRuby0.9.8,正式宣布支持ruby on rails

浏览 19040 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-03-07  
http://jruby.codehaus.org/

自从Sun雇佣了JRuby团队之后,JRuby团队的进展确实非常迅速阿。3月5号,JRuby发布了0.9.8版本,在该版本上面,rails1.2.1的98%的单元测试得到通过,可以认为JRuby正式支持rails了。此外0.9.8版本在IO方面性能也有了很大的提高,貌似提高了6.5倍之多。

预计JRuby在扫除了最后2%的不兼容问题之后,很快就会发布JRuby1.0正式版本。

有了Sun公司的大力推动,JRuby还是很值得期待的。
   发表时间:2007-03-07  
但是慢的可怕啊,究竟是因为脚本本身的问题,还是因为jruby自身的解析速度影响了运行效率呢?
0 请登录后投票
   发表时间:2007-03-07  
看了一下这个东东,貌似有狠多狠不错的特性,值得期待:

1.jvm线程支持
x = Thread.new { sleep 0.1; print "x"; print "y"; print "z" }
a = Thread.new { print "a"; print "b"; sleep 0.2; print "c" }
x.join # Let the threads finish before
a.join # main thread exits...

ps:我没明白上边的代码到底什么意思,不过总算是有线程了

2.ruby调用java
require ‘java'
include_class “java.util.Random”
puts Random.new.nextInt() => 1064445193

include_class “java.lang.System”
System.out.println(“bar”) => bar

include_class(‘java.lang.String’) {|p,name| “J#{name}” }
JString.new(‘heh’)


3.java调用ruby

Implement Java interfaces from Ruby

include_class “com.foo.MyInterface”
class MyImpl < MyInterface
  def bar # impl of public String bar();
    “hello”
  end
end

Use Ruby from Java
   MyInterface mine = 
      (MyInterface) BSF.eval(“MyImpl.new”);

mine.bar();  => “hello”

4.还有几个ppt上介绍的特性

JDBC activerecord adapter
Deployment to Java servers an easier sell
Possibilities to talk straight to Java services
JRuby plans on supporting Rails around the end of this summer

就不知道是祸是福了

0 请登录后投票
   发表时间:2007-03-07  
关于JRuby 0.9.8的性能:

在headius的blog里,是这样说的:
1、JRuby解释模式下运行,比ruby1.8慢3到4倍;
2、JRuby编译模式下运行,比ruby1.8快1.5到2倍。

目前,编译模式(编译成JVM的Bytecode)还有许多工作要完成,并且希望在几周内让JIT完全跑起来。届时希望能有较好的结果。


0 请登录后投票
   发表时间:2007-03-07  
用Java重写Ruby解释器的话速度是上不去的.而编译的方式大有前途.昨天修正了几个小毛病之后,XRuby (ruby to java bytecode compiler)在大多数情况下运行ruby 1.9的benchmark已经比ruby 1.8.5快了很多,而且速度提升的潜力非常大(我们基本还没有做过优化,连method cache都没有).
凭JRuby的资源,在年底左右重写出一个编译器应该不成问题,到时候速度也会上去.

http://xruby.blogspot.com/2007/03/xruby-runs-most-benchmark-faster-than.html
0 请登录后投票
   发表时间:2007-03-08  
听起来真不错啊!
0 请登录后投票
   发表时间:2007-03-08  
Ruby作为脚本语言,其优势就在于解释性,需要的时候,载入进来运行一下,作为脚本,也可能是需要动态修改的,编译了之后就失去了动态修改->解释的好处了吧
0 请登录后投票
   发表时间:2007-03-08  
Rubinius更有前途
0 请登录后投票
   发表时间:2007-03-08  
变化太快了,都可以编译了。
0 请登录后投票
   发表时间:2007-03-09  
把Ruby编译成java字节码不会改变任何Ruby的动态语言特性.因为我们不是把Ruby的方法和类直接影射到到对应的Java概念.

感兴趣的话可以参见:
http://code.google.com/p/xruby/wiki/XRubyHackingGuide

0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics