The news of “Rakudo Star” (a Perl 6 compiler) has spawned enough hype to prompt a backlash. I haven’t entirely decided whether I think this is significant or not, much less good or bad for the Perl community, so this post is my attempt to organize my thoughts on it.
Factually, Rakudo is not new – there have been thirty-one development releases of it. But Rakudo Star is the first prototype of an end-user distribution tarball that includes the latest Rakudo, the Parrot virtual machine, existing documentation, build instructions and so on. I would say it is designed for Perl 6 experimenters, rather than Perl 6 implementors. It means that anyone interested in Perl 6 can now just do this:
$ tar xzf rakudo-star-2010.07.tar.gz $ cd rakudo-star-2010.07/ $ more README ... satisfy library prereqs ... $ perl Configure.pl --gen-parrot $ make $ make install $ ./perl6 -e 'say "Hello World"'
For the Perl 6 project team – or more broadly, anyone carrying the Perl 6 torch for the last ten years – the release of Rakudo Star has huge symbolic importance. They’re saying, in effect, “look at this cool project we’ve been working on! We want you to get as excited as we are about what Perl 6 will be able to do”. And, you know what, if I were working on something for ten years, I’d be wanting to celebrate, too.
For those outside the project team, the significance of the release isn’t so obvious. I can imagine a wide range of reactions:
- “Cool! I’ve been wanting to try some Perl 6 but didn’t know where to start.”
- “What’s the big deal? I can’t use it for anything real yet.”
- “This sucks. It’s too (big|slow|buggy|incomplete).”
- “Gee, thanks. Perl 6 gets the attention and Perl 5 gets ignored… again”
- “Perl 6?”
There is no way reactions to Rakudo Star can possibly live up to the hopes and dreams of those involved the project. I’m not surprised that some of the project members seem defensive in the face of criticism.
Leaving the emotional reactions aside, Rakudo Star still is a significant step forward for Perl 6, as it means inviting a less dedicated group of participants to test and react to the evolution of both the language and the implementation. Some of that will be negative, but some will be positive. More importantly, it will provide focus to the project going forward and shift the mentality – gradually, one hopes – from “get it absolutely right” to “get it done”.
In the past, I’ve felt that the Perl 6 effort has been a distraction for Perl 5. On reflection, I’ve decided that the release of Rakudo Star is good for Perl 5 because it makes it easier for people to assess the relative status of both. Now, more than ever, it’s clear that Perl 6 is not going to sweep Perl 5 away any time soon, but people who are interested in the comparison can watch both evolve and decide where they want to invest their time.
It’s also pretty clear that Perl 6 is not going to make substantial inroads against Python, Ruby, PHP and other dynamic languages any time soon, either. If anyone was waiting for Perl 6 to rescue Perl, then they’ll need to keep waiting.
However, Rakudo Star will help demonstrate common strengths of the current incarnation of both Perl 5 and Perl 6 language development.
- Timeboxed delivery – both projects are now delivering regular, packaged development releases that users can unpack, install and explore to see how new features evolve and how it works with previously written code.
- Tests and a testing culture – both Perl 5 and Perl 6 are backed by thousands of tests that help catch potential errors or behavior regressions
- CPAN – Perl 5 already has it (and it’s adding 1,000 distributions a month) and some of the early work by the Perl 6 community has been to start porting some of the more popular Perl 5 modules into Perl 6.
- Community – there are dozens (or more) Perl conferences each year. These have often included talks on Perl 6 and this trend will likely continue. While Perl 5 and Perl 6 are different languages, they share not only a common heritage but a common culture as well
I suggest that people put the release of Rakudo Star in perspective. It is not a game-changer, but it is still a big step forward. Those who delivered it deserve kudos not brickbats, and I look forward to a next release that is even better.