Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>There are actually quite a few alternative implementations. The reason for so many versions is partly because while Ruby itself has a lot of fans, MRI is often considered to be not quite as nice as the language it hosts. </p> <p>This is a list of all the other Ruby implementations I know of:</p> <ul> <li><p>MRI</p></li> <li><p>JRuby for Java. Its speed advantage isn't as great now that Ruby 1.9 is out, but it's still a big player for its integration with Java.</p></li> <li><p>IronRuby (still in development) for .NET</p></li> <li><p>MacRuby for making native Mac OS X applications. It's currently based on Ruby 1.9, but they're going to release a new LLVM-based virtual machine for the next version, which looks to offer a major speed boost and will hopefully be portable to other LLVM target platforms.</p></li> <li><p>MagLev (still very much in development) for high-capacity Web apps. It will probably be a commercial product.</p></li> <li><p>Rubinius is a ground-up reimplementation meant as an alternative to MRI with a much cleaner foundation.</p></li> </ul> <p>I doubt Blue Ruby will have much of an impact on the general software development landscape. It will probably be nice for SAP programmers and allow them to cast a wider net for potential hires since Ruby is somewhat more popular than ABAP.</p> <p>All of the current Ruby implementations are compiled to bytecode. Contrary to SAP's claims, as of Ruby 1.9, MRI itself includes a bytecode compiler, though the ability to save the compiled bytecode to disk disappeared somewhere in the process of merging the YARV virtual machine. JRuby is compiled into Java .class files. I don't have a lot of details on MagLev, but it seems safe to say it will take that road as well.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload