On a side-note, a lot of folks are also dreamers.
The only serious piece missing from 1.9 is the encoding support. There's a number of other relatively minor failures remaining, but those are simple enough to fix (and several people, contributors new and old, are doing so at this very moment).
And the switch is -X19.
If it's "just a dream," it's largely for human reasons rather than technical ones.
That may be true, but don't we all preach that "People matter, not technologies" all the time?
Nobody pretends that MRI 2.0 is round the corner, but rbx at the moment is not in a position to even replace MRI 1.9.2 (lack of windows support anyone?). Their current self-proclaimed status is 93% of the spec, so I don't think that stopping work on MRI and spending the next couple of month bringing RBX to the current MRI state is a valid alternative. Dropping MRI would also imply dropping the whole toolchain and all custom infrastructures based on MRI, lots of knowledge that people have with MRI would suddenly go worthless, etc...
I seriously don't see that coming in the next couple of years.
Also, I have yet to see a purely technological decision of that magnitude, even in the world of compilers.
I see Rubinius and JRuby winning the race, but I don't see any of them _replacing_ MRI.
I understand there are good reasons to keep MRI around, but the idea of making Rubinius the future of core Ruby development is not an outlandish idea.
(note: I'm not following MacRuby Development very closely at the moment.)
One of the big things about the new VM is that it eliminates the global interpreter lock, meaning MacRuby probably has much better parallelization than MRI. With the VM alone I think they are on their way to being their own Ruby implementation.
All of this is a bit disappointing considering that they could have shared their improvements upstream and improved MRI performance for everyone, not just for Mac apps.
This in itself certainly is a great achievement for the rubinius team and one to be proud of. However, I personally have to see a large production deployment. I consider rbx a serious alternative to mri, just as jruby is a serious alternative. I'll call it "replacement" once heroku starts using rbx and drops mri support. I don't see that happening in the next couple of years, there's just way too much investment behind mri for it to just go away.
And yes, I do see heroku supporting both MRI and rbx as equals, but my point was that that's not replacing.
I don't see the MRI team, which has built a whole tool-chain around developing MRI throwing away all that and to switch to a new platform.
I like Rubinius very much, as I do with JRuby, I just don't see Rubinius replacing MRI. Thats what I meant by 'dreaming'. A non-realistic expectation that is not backed by any real events.
If everyone decided to switch en masse to Rubinius, MRI might not go away, but it would definitely be sidelined into irrelevance.
But I don't think that Evan, Brian, et al.'s goals have been to replace but rather further the movement of Ruby.
It's not just for things like Rails apps that Ruby is typically used for, either. I frequently process data, such as large log files, and now and then I try out the different Ruby to see if things have gotten better. So far, 1.9 and JRuby are the winners.
(LuaJIT is typically 2-5 times faster than both, so these days I tend to write my scripts in Lua.)
On my list of gripes: Lua's attempt at OO, being implemented as hash tables, is even more pitiful than JavaScript's. Also, arrays are implemented as hashes (just like PHP!), which is just one notch below JavaScript again. I also wish for a more expressive regex syntax, but then that's the text processing talking.
I'm an outsider looking in, so while I know what the MRI and Rubinius are, I don't know why I'd prefer to use Rubinius instead.
* No GIL
* JIT
* Better garbage collector
* Better debugging tools
Unfortunately, Rubinius is not yet complete, so it's not a suitable MRI replacement for now.
Without the GIL what does that mean for extensions written in C. Would they need to be rewritten?