Summary
The JRuby project released its latest update to the JVM-based Ruby 1.8 implementation. A key feature of this release is performance that now exceeds, in some cases, that of the native Ruby interpreter.
Advertisement
The JRuby project released version 1.1 of its JVM-bound Ruby 1.8 implementation. The major focus of this release was improved performance that, in some cases, now exceeds that of the native Ruby interpreter. In keeping with the project's overall goal of producing a fully compatible Ruby implementation on the JVM, the 1.1 release benefits from significant work on compatibility, and on ensuring that an increasing number of Rubyspecs tests pass on JRuby:
The main goal for 1.1 has been improving performance. We have made great strides in performance during the last nine months. There have been more and more reports of applications exceeding Ruby 1.8.6 performance; we are even beating Ruby 1.9 in some microbenchmarks.
According to JRuby core developer Thomas Enebo:
Ruby code can completely compile in an Ahead Of Time (AOT) or Just In Time (JIT) mode; yielding a faster Ruby! It also uses less memory than our previous releases...
Additional features in JRuby 1.1 include:
Compilation of Ruby to Java Bytecode (in AOT and JIT modes)
Oniguruma port to Java
Refactored IO implementation
Improved memory consumption
Thousands of compatibility fixes
What do you think of the current state of Ruby on the JVM?
So I have a question which might incur the wrath of all sorts of purists, but it is affecting something I am doing right now, so I am going to ask it anyway.
The Win32Ole library is shipped with Ruby 1.8 onwards, I believe, and it makes doing certain types of task with Windows apps pretty easy.
I see that it is not supported in JRuby, and I am guessing that in principle, the fact that Java is not dynamic, and worse, needs retro-fitted interfaces to talk to ActiveX objects, means that it would be really hard to do.
Has any thought been given to this? Is is just too hard / fringe to be considered?
Of course, I can accept the argument that you can still use ActiveX through JRuby by doing it through Java, but it is so much more straightforward just to do it via vanilla Ruby that it would be good to have the best of both worlds.