In praise of IronRuby’s Source Code

In my previous post about IronRuby, I expressed optimism while pointing out issues with the first pre-alpha release. Just as John Lam acknowledged, this is indeed a very promising start. My post received two great responses: a patch for all the problems that I pointed out and even a tutorial on how to approach the hacking of IronRuby’s source code.

I knew, or at least I hoped, that this would happen. When I hit the publish button, I was almost certain that someone would come up with a patch in an hour or so. This is a testimonial to the power of open source software. In this case though, something more was shown: the power of open source when your source code is damn good. IronRuby’s code is clearly elegant and extremely easy to change and extend. I rarely say this, but I’m highly impressed by the quality and clarity of IronRuby’s code. Pretty much anyone can amend the code for the bugs I pointed out, all you need to know is some basic C# syntax and the concept of method overload.

I’ve known C# since its first appearance (2001) and I usually consider it rather verbose, but IronRuby shows what good C# code is all about. I’d argue that the same issues wouldn’t have been fixed so easily or quickly if the code was cryptic or if this was the main C implementation of Ruby. So what can we expect when the project hits RubyForge? A lot of participation and very rapid progress because the barriers of entry are very low. We’ll need plenty of test cases, a decent road map and good leadership, but I see this project excelling and progressing at a fast pace.

I sincerely hope that Microsoft won’t “embrace, extend, extinguish” this one, because it would be a shame. So far, starting from hiring John, all the way up to the decisions regarding distribution of the code and contributions, Microsoft has nailed it.

Get more stuff like this

Subscribe to my mailing list to receive similar updates about programming.

Thank you for subscribing. Please check your email to confirm your subscription.

Something went wrong.


  1. Lawrence Oluyede July 30, 2007
  2. John Lam July 31, 2007
  3. Josh Nursing August 17, 2007

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.