|Think about Loose Coupling|
Re^2: A wholly inadequate reply to an Anonymous Monkby Anonymous Monk
|on Apr 23, 2010 at 06:56 UTC||Need Help??|
Here's another anonymous monk, aren't those guys annoying? Anyway no disrespect to anyone, and I wish Patrick and his family all the best.
I'd like to say that I think the Perl 6 team is doing a great job, it's a difficult task with few people people working on it.
But "the hysteria around Perl 6" is basically the following:
We got Perl 5 in 1994, around 2000 we got the Perl 6 announcement and initially had a submission process for new ideas. If you read some of these you'll see that people mostly didn't want to turn Perl 6 into the total rewrite it has become. Most of the suggestions were along the lines of fixing the return value of chomp, giving us a better object system, or fixing path handling. How about having a built-in way to slurp a file?
In short, Perl 6 might have been basically a re-iteration of Perl 5 in the same way that Perl 5 was for Perl 4. Only this time we could break backwards compatibility to fix some of the hairier bits.
Had this been done we might have gotten something in 2-4 years that was production ready (ran all of CPAN) and cleaned up the worst warts. Had we cleaned up the worst parser edge cases you might be running jPerl on your JVM now instead of jRuby.
Instead Perl 6 took the form of creating Carl Sagan's apple pie. Before it could be created they were going to invent the universe. Parrot was to be created from scratch not only to run Perl 6, but to run everything. Perl 6 was going to change everything. We weren't going to use CPAN, but a all new CPAN6 (still no sign of it) etc. The rationale for Parrot in particular seems a bit suspect in retrospect.
It was claimed that there was no existing VM that could run a lot of dynamic languages, now it turns out that the JVM/.Net can do that just fine (the VM isn't static, it was just Java that was), and of course there were already Lisp / Scheme VMs (Guile is now running multiple languages).
10 years later we still don't have our apple pie. I'm not contributing (much) so I'm not complaining. But it's interesting to speculate on what could have happened differently. Maybe we'd have a Perl 6 for 6 years already by now, Ruby would have never taken off as it did, and some of the Pythonists would have come back. Maybe I'd get something else than "Oh Perl, that ugly old crap" and "Perl 6? Aren't they writing DNF in that?" from people at (non-Perl) conferences, but alas.
Perl 6 is really neat. But even if Rakudo steams on ahead we're probably 2-3 years away from anything approaching a feature complete and usable compiler for Perl 6 with a basic module library. We're probably going to need another 5 or so to get decent Perl 5 <-> Perl 6 integration and uptake.