Personally, I think the Microsoft and Yahoo matchup is like two tired swimmers who bump into each other and then wind up drowning each other in their scramble to survive. But Yahoo will be the first to go under in this embrace. -- [Stowe Boyd]
I'm listening to Zed's podcast on leaving the Ruby community. I think he makes good points about the state of the Ruby platform.
He describes the problems with MRI, the Matz Ruby Interpreter or "official Ruby", and how quite often problems only get fixed because a smart guy (like Eric Mahurin or MenTaLguY) comes along and replaces the MRI code with something entirely new, not fix, replace. Essentially a slash & burn approach to fixing the barn. This doesn't suggest that the MRI code is terribly maintainable. I've done some C coding although I haven't been terribly active with it in the last decade, but enough to write some C extensions for Ruby. Frankly the MRI code scares me.
On the other hand we have Rubinius rapidly speccing out Ruby's behaviours and writing Ruby-in-Ruby on top of a tight virtual machine. They're playing catch up, but catch up they will and one day in the not too distant future there is going to be a Rubinius that is equivalent to and, at the same time, better than the MRI.
What does Matz do then?
Ruby 1.9/2.0 has taken a long time and I'm not sure there is an end in sight. Would it not be faster to evolve the language by jettisoning the MRI and switching to evolving the language on Rubinius?
As Zed points out Rubinius comes with specs and the code written in Ruby. When you want to develop a new feature would you rather be hacking on ugly C code and macros (and constantly anxious about what will break in the GC or some other, little understood, C module) or would you rather be looking at Ruby code with a spec describing its behaviour? Backed up by a series of specs to help pick up regressions?
Even though he wrote a lot of that C code and surely understands it well (at least as well as anyone), it would be a great surprise to me if Matz didn't answer the latter.
Could he make the switch and adopt Rubinius as the new MVM?