Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Rubinius 1.1 released (rubini.us)
48 points by earcar on Sept 24, 2010 | hide | past | favorite | 21 comments



Has anyone done a shootout recently like this?: http://programmingzen.com/2007/12/03/the-great-ruby-shootout...

I'd heard that JRuby was fastest these days, so it would be great to see some numbers and side-by-side features comparisons.



Anybody got a link for up-to-date benchmarks?


It doesn't use Rubinius 1.1 so can't be said to be entirely up to date, but this is only two months old: http://programmingzen.com/2010/07/19/the-great-ruby-shootout...


Seems like the Ruby equivalent of Python's Unladen Swallow, but with more momentum. Unladen Swallow seems pretty neglected at the moment.

The Ruby community is definitely not lacking in passion, something I'd like to see more of in the Python community.


Technically it's quite similar to Unladen Swallow (in the JIT at least) except for the rewrite from scratch bit.

If you're interested in performance in Python the place to look is PyPy though: http://pypy.org/

Disclaimer: I contribute to both PyPy and Unladen Swallow.


Cool... though the site doesn't say what rubinius is for us clueless folk (at least I could find it under the overview).

Did some googling though. Nice work! :)


Try the homepage


Why can't the homepage explain, at least in one sentence, what the software is about?


Go to http://rubini.us/

"Rubinius is software that translates the code for the Ruby programming language [...] and turns it into efficient machine code like [...]"


>>Rubinius is an implementation of the Ruby programming language.

One sentence from the homepage.


Another line from the home page, this one above the fold, says "An environment for Ruby". I know it is a language implementation, but to me, that sounds more like an IDE than a language implementation. [Also, the home page doesn't know about 1.1 yet. It has 1.0.1 as the newest version. That can be very confusing.]


The website was updated when 1.1 was announced yesterday. You must be seeing a cached page.


Even the 1.1 version of the front page has the "an environment for Ruby" bit high-up, with no reference to it being an implementation until 1500-ish pixels down the page. Admittedly, only people familiar with what Rubinius is are likely to want/need to use Rubinius so far.


It's a Ruby virtual machine built on LLVM.


This actually puts out a mildly confusing picture. Rubinius uses LLVM to implement the JIT compiler only. LLVM does not provide a performant interpreter, and even if it did, the instructions in LLVM are incredibly lowlevel which would mean even lower performance. For this reason, Rubinius also has a bytecode interpreter, of which the bytecodes are highlevel and associated directly with ruby semantics (send, push_const, etc).


Virtual machine can give the wrong connotation to a Java developer though. It isn't just running compiled classes like in Java. It has to do ongoing runtime compilation.


runtime compilation is what most common use jvms have been doing for a a few years though, so java programmers could get the right connotation :)


Sorry, I never said that it couldn't, but I didn't explain what I was trying to say very well either.

Yes, there can be runtime compilation in Java like compilation of JSPs (for example). With Tomcat, Tomcat uses (or used to use- I'm getting old) classes in tools.jar, etc. which uses the JVM to compile and put in the work/... directory which it then loads via classloader, etc. etc. and interprets the bytecode it compiled it into into memory, etc. etc.

I was trying to explain to someone that might want to learn about what is going on with Ruby and Rubinus that unlike the Java JVM whose purpose most of the time at runtime is running precompiled bytecode, Rubinus, MRI, etc. are more often compiling at runtime than Java (at least until Java 7 with JRuby, etc. at which point I'll be completely lost, because I will need to understand how that works).

When I think of a VM in the Java sense from that background, I still think "MOSTLY (and thank you for clarifying) running compiled classes at runtime". I just didn't want the OP to be confused about that, and in process now I probably look like a total dumbass.


I would liken it to a JIT compiler in Java, though.


Uhh, the JVM does runtime compilation as well.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: