A Call to Action
March 6th, 2009 by RadarToday marks 34 days since I wrote my post on Ruby 1.9.1. That has been the single most successful piece I have ever written and I’d like to thank those people who linked to it and those who have commented on it.
Now I must ask something of the community. We have this wonderful new version of Ruby to use and yet many of the gems we love to use are still broken. Why? Because the owners of the gems are lazy or simply cannot be bothered or do not want to spend the time to alter their gems to make them compatible with Ruby 1.9.*. There have been a few authors out there such as the Phusion Passenger guys (look how small that commit is!) who have added 1.9 compatibility to their gem and this is a show of how important they think the community is to the success of their product. They want the community to use 1.9 with their gem.
This is a call to action for those developers who have failed to release a 1.9 compatible version of their gem for some reason. There is no excuse. If you can’t do it, get someone else to do it. There’s this awesome service called github which is really handy when you want to share a project with the world and get people to submit stuff. If you don’t want to fix your gem, then fine. Other people will, in time. Hell, even I might fire up a few new repositories when things settle down with 1.9 compatibility for your hard work (and of course attempt to get my changes put back into mainstream). Who knows, I might even find fame through this!
Please, please, please! Update your gems. It’s not that hard and it’s setting the Ruby community on the path to full compatibility with 1.9. We don’t want to become like Internet Explorer.

March 7th, 2009 at 9:07 am
There is an excuse. It’s called time. I hate to break it to you, but even for someone who really digs turning out OSS, it isn’t our main focus. And it certainly isn’t something we can toil tons of time away on for a (currently) very small part of our user base. So while appreciate your “call to action,” I don’t think you’re targeting the right people.
If there is a whole community just waiting for us to move to 1.9, then where are their patches? Where is their contribution? I’ve seen remnants of this through people moving my matchy and context libraries to 1.9, but by and large, there aren’t that many people doing it. To be honest with you, though the recognition is really great and I really just giving away source code for a lot of reasons (philosophically and otherwise), the main point of open sourcing something is that people will come alongside you and help you push it forward. I don’t use 1.9 yet, so I have zero impetus to move my gems forward. When I, in the vague future, do move to 1.9, then I will fix some of my oss to work. But until then, I have no real reason. But if someone does, then they should be writing the patches, scratching their own itch just like I did when I first wrote my OSS libraries.
March 7th, 2009 at 11:27 am
I see Jeremy’s points, but I also see a chicken/egg scenario in that people won’t contribute until there is a critical-mass of available libraries that are already compatible. That is, when faced with a project where 10 libraries fail in 1.9 versus a project where just 1 fails in 1.9, I’m more likely to put in the effort to fix that 1 remaining library. As people scratch their itches, that mass will be achieved, but since almost no one is clamoring for 1.9 compatibility except for a vocal minority, the maintainers have no real motivation here.
Anyway, as a first step on my part, I’ve updated CsvMapper to be 1.9 compatible. It was a trivial fix (you can see the commit here: http://github.com/jchupp/csv-mapper/commit/a71b4ae851255c494e99065b3a0287ee9a1f6af2 ) but that’s one tiny step in the right direction… hopefully it’ll get merged into the main repo.
March 7th, 2009 at 10:28 pm
Nice post Radar. You just me motivated to test and update Yahoo Currency (http://github.com/scottbarr/yahoocurrency/tree/master) and SMS Xchange (http://github.com/scottbarr/smsxchange/tree/master)
They’re both small projects and only Yahoo Currency needed a small change :)
I’m really looking forward to doing more with Ruby 1.9, it feels so fast!
March 10th, 2009 at 9:38 am
Did you run into a particular gem you wish was 1.9 compatible?
March 10th, 2009 at 10:05 pm
@Scott Thorpe:
mysql, pg, mongrel (fastthread), hpricot. To name a few. Before you go off saying that they have been updated on Github, that’s beside my point. My point is that normal users cannot yet do sudo gem install [gem] and it magically works, both on 1.9 and 1.8.
@Jeremy:
In that case, I will endeavour to fork any gem I find that is not 1.9 compatible and fix it up to the best of my ability so that it is.
March 10th, 2009 at 10:44 pm
If I were working on a gem, and I was half-way through a development cycle, would I be faced with the choice of either fixing the last release for compatibility and later on fixing the development branch for compatibility (which may lead to a bit of duplication of work, though hopefully not too much if you’re using a DVCS), or waiting until the current development cycle was complete and release a new release that’s also compatible with both ruby versions (which may take some time)?
March 11th, 2009 at 7:52 am
@ Andrew: I’m sure that you could complete the development cycle and make it compatible all in the same swoop. Generally, making a gem compatible is not that hard. Again, I refer to the passenger guys who did it in a couple of lines. Many other gems are the same changes.
March 11th, 2009 at 10:04 am
I’ve updated ruby-xslt and json to be Ruby 1.8 & 1.9 compatible. They can be found at http://github.com/radar/ruby-xslt and http://github.com/radar/json