So, What About Rubinius

September 29th, 2007 by Pat Eyler

Your rating: None Average: 3 (3 votes)

Rubinius is important. A whole lot of folks agree. Ola Bini wrote up a whole post about how important he thinks it is. In it, he writes:

In fact, I’m getting more and more convinced that for the people that don’t need the things Java infrastructure can give you, Rubinius is the most important project around, in Ruby-land. More than that, Rubinius is MRI done right. If nothing substantial changes in the current timeline and plans for Ruby 1.9.1, I predict that Rubinius will be the CRuby implementation of choice within 6 months. Rubinius is an implementation done the way MRI should have been.

He also lays out a number of reasons that he feels this way:

  • It is byte code based. This means it’s easier to handle performance.
  • It has a pluggable, very clean architecture, meaning that for example garbage collection/object memory can be switched out to use another algorithm.
  • It is designed to be thread safe (though this is not really true yet), and Multi-VM capable.
  • It works with existing MRI extensions.
  • Most of the code is written in Ruby.
  • It gives you access to all the innards, directly from your Ruby code (stuff like MethodContexts/BlockContexts, etc).
  • The project uses Valgrind to ensure that the C code written is bullet proof.

The meme that rubinius matters has also spread to Sun, who sponsored the recent Rubinius Sprint in Denver. Tim Bray who arranged the sponsorship wrote about why Sun would do this:

Ruby isn’t finished. It’s a great substrate for Rails, it’s immensely useful for building all sorts of things, but it’s not fast enough. I agree with Avi Bryant’s argument that a language isn’t finished until it’s fast enough to extend itself. Frankly, none of the language enhancements proposed for Ruby 2.0 make my heart go pitter-patter. But give me a Ruby with performance as good as a really good Smalltalk VM, and the space of things for which you need statically-typed languages shrinks to a really uninteresting size.

Except for, nobody including me is smart enough to predict which of the Ruby.next implementations is going to have that performance mojo. So, it seems like the only reasonable thing is to bet on all of ’em. One thing that makes this easy is that all the teams get along with each other; a natural outgrowth of Ruby culture, and something from which we can all learn.

Ezra Zygmuntowicz and EngineYard think that Rubinius is important enough to have started hiring Rubinius developers.

I’m really stoked about this. I think rubinius has so much potential that I am really happy to be able to support it. Starting next month Evan Phoenix is going to be working here at EY half time on ey tools and such and half time on rubinius.

The sprint itself went very well. Evan Phoenix, Wilson Bilkovich, and Brian Ford (the core rubinius developers) met with Charlie Nutter (one of the core JRuby developers) for some intensive Rubinius hacking. Brian and Wilson have both written about the experience. Evan joined them in an interview. In the interview, Evan talked about the goals and outcome of the sprint:

[We wanted] to see how we rubinius work would progress in this kind of environment. I was extremely pleased how it went. The 4 of us really tackled things well, and working in a collaborative atmosphere really sped things up. I was also happy to be right there to transfer knowledge of some of the interior of the VM to other developers. That knowledge is more difficult to grasp than almost anything else in rubinius, but probably the most important.

__________________________

--
-pate
http://on-ruby.blogspot.com


Special Magazine Offer -- Free Gift with Subscription
Receive a free digital copy of Linux Journal's System Administration Special Edition as well as instant online access to current and past issues. CLICK HERE for offer

Linux Journal: delivering readers the advice and inspiration they need to get the most out of their Linux systems since 1994.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Anonymous's picture

Great Innovation!

On April 17th, 2008 Anonymous (not verified) says:

One thing I notice is the Rubinius uses pluggable feature. It has garbage collectors and code optimizers. It means that the object memory can be shifted to another algorithm, which makes it great!

Belle's picture

It works with other MRI extension! Rubinius is great!

On April 17th, 2008 Belle (not verified) says:

The good thing about Rubinius is that it is highly adaptable, it works with other exising MRI extensions.

Lil Wayne's picture

Linux

On April 8th, 2008 Lil Wayne (not verified) says:

I used to love Ruby, I really did. That was until I found Rubinius. :P

caballosweb's picture

Rubinius seems very

On December 11th, 2007 caballosweb says:

Rubinius seems very interesting, if only from the angle of what it can teach us about Ruby herself.

I really enjoyed Evan's talk at RubyConf. He bites off scary (to me) chunks of this project and then just chips away at them with really innovative techniques.

Rubinius seems to have a nice focus on exposing interpreter details to the running program as well. I can't claim to understand all of it, but it really looks like it could take concepts like reflection and metaprogramming to new heights.

Definitely a project to keep an eye on...

Post new comment

Please note that comments may not appear immediately, so there is no need to repost your comment.
The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <pre> <ul> <ol> <li> <dl> <dt> <dd> <i> <b>
  • Lines and paragraphs break automatically.

More information about formatting options

Newsletter

Each week Linux Journal editors will tell you what's hot in the world of Linux. You will receive late breaking news, technical tips and tricks, and links to in-depth stories featured on www.linuxjournal.com.
Sign up for our Email Newsletter

Tech Tip Videos

From the Magazine

December 2009, #188

If last month's Infrastrucuture issue was too "big" for you then try on this month's Embedded issue. Find out how to use Player for programming mobile robots, build a humidity controller for your root cellar, find out how to reduce the boot time of your embedded system, and if you're new to embedded systems find out the basics that go into one. You can also read about the Beagle Board, the Mesh Potato and a spate of other interestingly named items. And along with our regular columns don't miss our new monthly column: Economy Size Geek.







Read this issue