June 2008

Ruby Fishy Edition

Soundtrack – Listen while you read

What’s that smell?

Ruby Enterprise Edition. A fork to make the Ruby Garbage Collector COW-friendly. Average memory saving of 33% together with Passenger. Created by Phusion.

We can all agree that the name sucks, but there is also another thing which bother me. Until recently I couldn’t put my finger on it, but now it’s pretty clear for me: They have reversed the usual process.

The Usual Process

  1. You discover a bug or something that can be improved upon.
  2. You improve it.
  3. You open a ticket and attach the patch.
  4. If they don’t want to apply the patch, you might consider making a fork.

The Phusion Way

  1. You discover a bug or something that can be improved upon.
  2. You improve it.
  3. You fork the original project and apply the patch.
  4. You make lots of fuzz.
  5. Profit! They have forked the project, before they know if the MRI developers want the patch or not. What if they think that it’s a great patch, and it gets merged right away? Then, what happens to Ruby Enterprise Edition?

More interesting: What if the patch doesn’t get merged into MRI? Will people trust Ruby Enterprise Edition if Matz turns thumbs down?

Update: By “forking” I talk about forking the whole project in the same way as Pidgin got forked, not like forking the code on GitHub. Phusion is promoting REE as it should be run side-by-side with Ruby, not merged when it’s ready, and I can only see one reason: They want to make it clear that Phusion created it.

Phusion™, the PR company

When I hear the name “Phusion”, I do not think of some cool guys from Netherland, studying computer science and creating awesome stuff for Ruby in their spare time.

Unfornately, I immediately think of a company which does what ever they can to promote their products. As a programmer, I don’t like promoting. I like code. Hard facts that I can verify. That’s the reason not everybody is satisfied with the demo of MagLev.


The open-source philosophy of Phusion is a little weird, in my opinion. They’re not releasing anything until they have a stable 1.0, and while I can see why they want to do that I think it’s a bad idea.

Firstly, they can’t get any help on the first, basic, important foundation. So if someone figure out there is a better way of doing it, they have to do a complete rewrite. If they let people join them from the start, they’ll be absolutely sure that they’ve done it right.

Secondly, it’s easier to understand the code when you have followed the development from the beginning. If you just get thrown into 1.0, it will take some time to understand how everything relates to each other and that might scare you away.

And finally, it looks like they’re saying: “We, Phusion, created this! Not you; we’ve managed to get it fully working without anyone’s help. You can contribute by killing those tiny bugs that appeared while we were busy with the awesomeness.”

raise RantAlert, "don't take everything too seriously"

In the end

The strange thing is that Phusion actually produce awesome stuff. Passenger is really neat and simple; Ruby Enterprise Edition looks like a great patch. And I’m pretty sure that they will come up with even more genius products.

Still, I think it’s a little fishy…