
Ruby VMs: A Comparison
A look at the different Ruby virtual machines (JRuby, MagLev, IronRuby, Rubinius, MacRuby) and how to choose what fits best within the enterprise.

A look at the different Ruby virtual machines (JRuby, MagLev, IronRuby, Rubinius, MacRuby) and how to choose what fits best within the enterprise.
In the past weeks, a number of new Ruby implementations and dialects have appeared: the lightweight, ISO compliant MRuby; and MobiRuby and RubyMotion that let you write iOS apps in Ruby.
A statically compiled variant of Ruby is now available for building applications that target iOS devices. Known as RubyMotion, this language and tool chain from HipByte fully conforms to Apple’s App Store guidelines.
The MacRuby team's busy working towards MacRuby 1.0, recently with the 0.10 release which adds XCode 4 support. Meanwhile, the first applications written using MacRuby have shown up in the Mac AppStore. Also: MacRuby seems to be part of the upcoming "Lion", Mac OS X 10.7.
A whole batch of new Ruby VM releases is available. MacRuby 0.8 fixes bugs and begins the path to 1.0. Rubinius 1.2 improves memory efficiency and the debugger. MRI received new patch levels: 1.8.7-p330 and 1.9.2-p136, the first big bug fix update to 1.9.2.
MacRuby 0.7 is out, with the usual performance and compatibility improvements, including Ruby 1.9.2 compatibility. To demonstrate MacRuby's tight integration with Snow Leopard's Grand Central Dispatch (GCD), the team has released ControlTower, a Rack-based web server. Also: with the new BridgeSupport, all native APIs can now be accessed and scripted.
The LLVM team yesterday released LLVM 2.8, the low-level virtual machine infrastructure that includes a next-generation C/C++ compiler, optimiser, and run-time. In addition, the LLVM also sports a VMKit for CLR and JVM runtime and is used in tools as diverse as MacRuby and Python's Unladen Swallow. Additionally, the recently-released Mono 2.8 has a mono-llvm runtime. So what's new in LLVM 2.8?
MacRuby 0.6 is available now, bringing debugging and vastly improved Grand Central Dispatch (GCD) support. A lot of the core functionality has been overhauled, such as a new String implementation and a new thread-safe Regex library which replaces Oniguruma. MacRuby's now considered stable for Cocoa development.
The first beta of MacRuby 0.5 is available, complete with a new VM, JIT and AOT - and without the GIL. InfoQ talked to the MacRuby core team about the state of MacRuby and whether there'll be a way to write Ruby apps for the iPhone using MacRuby.
MacRuby is nearing its first RC for 0.5 and adds support for Grand Central Dispatch. A new IronRuby release is available, Ruby 1.9.2 might be delayed, and Rubinius joins the group of 1.8.7 compliant Ruby implementations.
A first incarnation of ruby-debug support on 1.9 is now available. Ruby switcher makes it easy to run different Ruby versions in parallel. Also: MacRuby's experimental branch was merged into MacRuby Trunk.