M. Edward (Ed) Borasky wrote:
Charles Oliver Nutter wrote:
Lionel Bouton wrote:
So as much as I'd like JRuby to succeed even if I don't use it myself
(currently), people willing to work on MRI (or YARV and Rubinious for
that matter) are most welcomed to do so too.
I think MRI is mostly a dead end at this point, unlikely to see any major perf/scaling improvements anymore. If you're going to focus a lot of time on tweaking and improving an implementation, I'd recommend helping out one of the really active 1.8-compatible implementations (JRuby being the most complete and furthest along) or a 1.9 implementation (YARV being most complete and furthest along...but we have some 1.9 features in JRuby too).
1. As far as I know, *only* MRI is "100 percent MRI compatible".
The other implementations are "extended subsets". JRuby is for the moment the most complete subset and has more extensions, i.e., Java libraries, an AOT compiler and all of the performance tuning that the JRuby team has done. I haven't heard much from the Parrot/Cardinal project recently, but I'm guessing we'll see IronRuby at close to the level of JRuby by early next year, and Rubinius some time in the spring.
I didn't say MRI, I said 1.8...and I said JRuby was "the most complete", not "complete", so I think we basically said the same thing as far as JRuby goes.
When you say "close to the level" do you mean performance-wise or completion-wise?
Performance-wise, I wouldn't be surprised to see IronRuby close to current JRuby in the next six months; but then we'll be another six months on from here too. Rubinius may take a bit longer, since performance is going to be a tough issue for them.
Completion-wise, Rubinius is way ahead of IronRuby, and may be a rough tie with Ruby.NET. I would expect Rubinius to stay ahead as far as API/language support for some time.
In our experience on JRuby, the last 10 or 5% of compatibility has been by far the hardest, at times requiring rewrites of key subsystems. Getting 90% complete is great, but it won't run e.g. Rails. And we still get occasional bug reports for things not working in Rails.
On another note...talking about performance before you can run apps is mostly worthless, so it seems like it would be better for alternative implementations to hold off reporting performance numbers before they can run real apps.
2. I don't think MRI is a dead end at all, considering the discussions I've seen on this list just since I got back from RubyConf. I see people seriously proposing re-doing the garbage collector, for example, and I see other people investing a lot of effort in tweaking Rails to use Ruby and the underlying OS more efficiently.
We shall see.
3. As far as I know, YARV/KRI is the only serious 1.9 implementation.
We haven't started implementing 1.9 semantics yet; but I don't expect it will take more than a couple months when we do.
I do think that there is probably more excitement and interesting work on YARV/KRI/1.9 than there is on MRI, or for that matter any of the MRI extended subsets. But MRI is hardly a dead end IMHO.
You are entitled to your opinion. But perhaps "dead end" was a bit to strong. How about "done"? I see little more than maintenance happening on 1.8 in the future.
- Charlie