Rubinius
Today on Freenode #ruby-lang, I was talking to "Defiler" about Rubinius. It sounded great. I'm going to look into working on this open source project over the summer, because it seems worth it, and I could end up learning a whole heck of a lot.
Evan, the founder of Rubinius, claims that it is 98% first class. I am interested to find out what that means, but I already know somethings it means. For instance, Methods are first class.
This works:
obj.methods[:my_fibonacci] = other_obj.methods[:fibonacci]
Also, you can undo the effects of including a module very easily. Defiler says you just remove the module from the "ancestors" of the object and then the include is undone. That's a lot nicer than the messy code I'm going to have to write to undo a 1.8.5 ruby module include.