NOTE: If you’d like to discuss this or ask questions, head over to:
As I prepared for my GoRuCo 2009 talk, “Where is Ruby really headed?” (video), I realized this question is impossible to answer right now. Before we can speculate about the future, what is needed is a clear sense of where Ruby implementations are right now, and how well they play together. The RubySpec project is already working towards this lofty goal, and has made some great progress. However, many folks may think this is a tool for Ruby implementers only, and that perception limits its utility.
What I’d like to do is come up with a system that makes it easy for any Ruby hacker to know what Ruby is defined as functionally, and where it stands, by just entering the name of a class or method in their browser. I’ve come up with a rather ugly mockup of this, but hopefully it shows the general idea: http://is.gd/JYaO
I’ve floated this idea with the JRuby and Rubinius developers, and they really like it.
I’ve passed the idea on to my work, and they’re behind it. They’re willing to let me spend a few hours a week of paid time on this, and will donate development resources and time as well if we can swing it. Because I want to make this move along fast, I’m going to open up a Ruby Mendicant style donation drive, but much more tightly scoped. If I could raise $500 a week, that’d guarantee an extra 10 hours of my time on top of whatever my work gives me. I want to raise 4 weeks of donations first, then see how it goes from there. With or without donations, I’ll be spending my spare time and whatever work hours I can carve away on this, but obviously, having a minimum amount of hours I ‘owe’ donors would help motivate me.
The main hope here is that I’d be able to provide a resource that is beneficial to Ruby developers in general, library maintainers, and implementers. Ordinary Ruby users will be able to use this system to easily see when a particular release of Ruby on a particular implementation breaks something. They’ll also be able to easily see the differences between versions and implementations using this tool. Library authors can use this to give them a sense of which versions and implementations they can meaningfully support in their projects. And the benefit to implementers is obvious.
This project is still in its very simple stages, but I’ve already started on a simple prototype ( http://github.com/madriska/unity ) I plan to officially start on June 15th, and will have a basic roadmap together by then.
In the mean time, please donate if you like the idea and spread the word.