The guy leading Microsoft's port of Ruby to
.NET has warned of a potential Balkanization of Ruby, which could impair the language's success.
This is a stronger wording on the same theme from the same guy (John Lam) as a story about a month ago on the Register which I commented on here.
I'm wary (maybe too wary) of the possibilities of Balkanisation of Perl 5. I remember richardc having a lot of pain with a bug report that he couldn't replicate for one of his modules - turned out in the end that the end user's
perl reported itself as "5.8.1" but was actually "5.8.1 RC3", and RC3 had the bug, whereas vanilla 5.8.1 did not. This is one reason why I'm very reluctant to bump maintenence version numbers until close to the release - even if it's an intermediate version, anything claiming to be 5.8.
$n but actually a bit more recent should have no new bugs, and some old bugs fixed, whereas if the same executable reported itself as 5.8.
$n + 1 then it may not have all the bugs fixed that the true 5.8.
$n + 1 release has, leading to much wailing and gnashing of teeth. I'm not happy if people ship a
perl that happens to have more command line options, because unknowing users will assume that they are standard, add them to their
#! line, and if the program is migrated to another OS, they will assume that the breakage is a bug in Perl, and we look bad. So I added a test that all unknown options remain unknown
So it's reassuring to know that Perl 6 starts out with a single strong test suite (which it sounds like
@Ruby is only just getting to), as that will reduce fragmentation. Plus, recently a new face, John M. Dlugosz, appeared on Perl 6 Language, and is working hard to hammer out the ambiguities in the Synopses to make them proper specs.
On the down side, I note that Ruby has 5 funded implementations, whereas Perl 6 has about ½ a funded Perl 6 implementation, and 0 funded Perl 5 implementations. (And, grr, when I asked for feedback on the viability of a plan on trying to raise that figure, Perl 5 Porters digress away from helpful things like "try it" or "this specific is bad, this alternative might be better". Whereas they are perfectly happy to digress off topic discussing another Register Ruby FUD story. Does The Register have something against Ruby?)
Meanwhile, to Balkanise properly, Ruby would need an implementation without vowels, an implementation that has a dispute about its name because it's too much like the name of a module in a neighbouring language, and an implementation that fragments out of a (perceived as core) module in an existing implementation.