Monday, June 4, 2007

A Response to Ola's IronRuby Post

I'm not up for creative titles tonight. Hopefully you'll see this in your feed reader and click for a second opinion. Granted, I agree with Ola's IronRuby post on most points, but I disagree on a few key items. So let's dive in, shall we?

You managed to blog this viewpoint before me, Ola, but you know I agree with almost everything. However, to pour a bit more oil on the fire, I'll take it a step further.

Having run the Ruby gauntlet and brought JRuby from not running anything to running Rails almost 100% perfectly (in just over a year, I might add), I will confidently say there's no way with current specs and tests that anyone could create an implementation of Ruby from scratch that will run Rails unless they can look at the existing implementations. I simply do not believe it's possible.

And I'll throw another couple curve balls too:
  • I don't believe tests and specs will be where they need to be within the next 6-12 months unless there's a major effort put behind them. Even if that effort happens, I still don't think we'll ever have specs enough for someone to implement Ruby "in the dark" for at least a year, if it ever happens.
  • IronPython did a great job getting pretty close to 100% compatible. But Jim Hugunin had implemented an almost 100% Python-compatible implementation in Jython before going to Microsoft; he didn't need to look at the Python source. I don't believe John Lam has the same level of experience with Ruby, so he's at a severe disadvantage (and to John: I really feel for you, man...this has got to be difficult).
  • This is a good friend's belief, but he's won me over: we don't believe Microsoft would ever willingly allow IronRuby to get to the point of running Rails, since that would directly compete with their ASP.NET server, software, and tool offerings. What would be the benefit to them of a free runtime running a free language implementation that runs a free web framework? Probably zero. And as Martin Fowler and others have blogged about NUnit, Microsoft hasn't exactly been lovey-dovey with OSS projects that impact (or are perceived to impact) their bottom line.
  • Given these facts and the current situation, I'd say it's a better bet for us as a community to get behind the Gardens Point Ruby.NET Compiler project, which is already much farther along than IronRuby...plus it's real open source (you can contribute) and they can look at Ruby's source (and have admitted to doing so for at least the parser). I was wary/skeptical of Ruby.NET last year, but they now seem like the current best hope for Ruby on the CLR. That link again is Gardens Point Ruby.NET Compiler. And to the QUT guys working on Ruby.NET, you need to do three things right now to save your project from historical obscurity: set up a public source repository, accept a few external contributors, and start blogging and emailing up a freaking storm.
That about sums up what I have to say about IronRuby, Microsoft, and the future of Ruby on the CLR. The rest of Ola's points I agree with...diversity is important, a spec and test kit are needed immediately, and Microsoft needs to change their OSS attitude pretty quick or risk becoming irrelevant.

7 comments:

  1. Where does this idea that John Lam isn't allowed to look at the Ruby source code come from? As far as I can tell it is only from Martin Fowler. Has anyone bothered to confirm this with John?

    For IronPython, they test compatibility by running the Python test suite - which is *part* of the Python source code.

    I'm counting this rumour as FUD until proved otherwise...

    ReplyDelete
  2. Hmm... apaarently it is confirmed, which is slightly bizarre.

    ReplyDelete
  3. anonymous: They licensed the Ruby.NET codebase, which is certainly a great step forward. And they're learning from it to build out IronRuby, which means they've already made steps toward remedying the "can't look at open source" thing. So I think we've all been vindicated...Microsoft has started to make moves toward exactly the type of collaboration we said they'd need. It's good to see they're recognizing that collaboration is the right way to go.

    ReplyDelete
  4. What's up with these JRuby guys? They've got their panties wound in such a tight bunch that they're devolving into a bunch of nuts.

    This is a good friend's belief, but he's won me over: we don't believe Microsoft would ever willingly allow IronRuby to get to the point of running Rails, since that would directly compete with their ASP.NET server, software, and tool offerings

    Oh, you're "little friend" right? Yeah, it's a big conspiracy. Gates and Ballmer will personally order the crippling of IronRuby in order not to run Rails.

    Given these facts and the current situation, I'd say it's a better bet for us as a community to get behind the Gardens Point Ruby.NET Compiler project...

    Are you freaking kidding? There is no "us as a community". There's you working on JRuby.

    A note to Sun executives. You better have a talk to these guys you hired, because they're really doing a disservice to Sun.

    My organization will never run software developed by such dysfunctional people, such as Charles.

    ReplyDelete
  5. @mark: Personally I'm very interested in the opinion of someone who is obviously very skilled at implementing Ruby on another platform. I would believe 'us as a community' is interested too.

    ReplyDelete
  6. I'm *pretty* sure that John Lam said that getting IronRuby to run Rails was an explicit goal of the project.

    Ican't provide a link though, sorry. :-(

    ReplyDelete
  7. Two things that may justify MS' implementation of Ruby: having people developing in .Net increases the chance they'll rely on other platform's libraries and languages, thus tieing them to the platform; and they're free to add/chance Ruby in order to create even more tie-in, like they tried to do with Java years ago, but much easier now with Ruby since it doesn't have a big company behind it to prevent such move nor even an official spec.

    ReplyDelete