Rakudo Perl, the implementation of Perl 6 on the Parrot virtual machine, has made [a milestone release](http://use.perl.org/~pmichaud/journal/38562).
For years now, Rakudo has been tucked into the Parrot project, but no longer. Rakudo is now its own project, with its [own source repository](http://github.com/rakudo/rakudo) and its own release schedule, following the Parrot release schedule closely.
This 14th development release of Rakudo is codenamed Vienna, after Vienna.pm, the Perl Mongers group that has been sponsoring Jonathan Worthington’s development work since April 2008. Future releases will be named after other Perl-related cities.
This is a fantastic time to take a look at Rakudo and see what’s happening. We’re reaching the top of the hill, and I couldn’t be more excited.
As promised, I’m going to start posting the quickie news tweets that I post to the Perlbuzz twitter feed here in the main Perlbuzz blog. These are links I found interesting and newsworthy, but didn’t have any commentary or other story to go with them.
Here are the last twenty.
I just gave [my keynote at Frozen Perl](http://www.slideshare.net/petdance/frozen-perl-2009-keynote), and one of the big points I made was that we don’t know what Perl 6 is going to look like. It’s totally a green field. There’s no toolchain, no LWP, no DBI, etc.
My big question: Should Perl 6 use the CPAN?
Does an 11 year-old distribution system make sense in 2009? In 1998, when we didn’t have everything living in a cloud, and hosting websites took a lot of money, and if you wanted massive bandwidth, you were at a big company or a university. In 2009, those are no longer true.
Of course, I’m not suggesting that we don’t distributing thousands of excellently awesome modules to the world. If we didn’t, we wouldn’t be Perl. But does it need to be through a centralized distribution channel like PAUSE + CPAN?
I don’t have an answer.
Rock on, Rakudo dudes.
This makes me so happy. Eric Wilhelm writes in [this use.perl posting](http://use.perl.org/~Eric+Wilhelm/journal/38068)
> Our [December Meeting](http://pdx.pm.org/kwiki/index.cgi?December2008Meeting) was a rakudo workshop, where we realized that rakudo had no implementation of `warn()`. While the implementation that got checked-in by the end of the meeting is not fully compliant with the spec’s requirement that warn() throws a certain sort of resumable exception, it does now at least exist, and prints your message on stderr.
While I love any given gathering of Perl Mongers, whether to have a technical talk or just to drink beer, I’ve always thought that it would be great to have PM groups use their collected talents to add directly to the Perl community. My long-dormant [Phalanx project](http://qa.perl.org/phalanx/) was an attempt to take advantage of that.
Now, PDX.pm has made a concrete contribution to the #1 need of the Perl community today: Getting a Perl 6 implementation out the door.
Bravo to PDX.pm!
[Simon Cozens](http://simon-cozens.org/) just [posted to the Perl 6 internals list](http://www.nntp.perl.org/group/perl.perl6.internals/2008/12/msg49626.html):
> I just ran this code, which worked with the expected results:
> use DBDI;
> my $conn = DBDI::DriverManager.getConnection(
> “dbdi:SQLite3:test.db”, “”, “”);
> my $stm = $conn.createStatement();
> my $rs = $stm.executeUpdate(“CREATE TABLE foo (bar, baz)”);
> my $stm = $conn.prepareStatement(
> “INSERT INTO foo (bar, baz) VALUES (?, ?)”);
> $stm.setColumn(1, 123);
> $stm.setColumn(2, “Thingy”);
> Merry Christmas,
I love the smell of progress in the morning.
The Perl Foundation has announced a Hague Grant for Jerry Gay to implement the Rakudo Perl command line interface.
The work will be to define the S19 synopsis pertaining to command-line interaction with Perl 6, and to provide a Rakudo implementation of the synopsis.
Jerry will need to document the Perl 6 command line syntax, implement its tests, create a command line parsing library for Parrot, and implement a subset of the Perl 6 command line syntax.
I couldn’t be happier with this direction. I made some vain stabs at command line interaction on Rakudo long ago, but not much came of it. Having a command line interface will make it much easier for users to work with Rakudo as it progresses. Perl without being able to do filtering magic isn’t very Perly, no?
Patrick Michaud also received a Hague Grant, to work on the Perl Compiler Toolkit and regexes and other internal hoohah. I’m sure it’s useful, but this feeble-minded reporter’s head hurt when trying to follow the details of the grant.
Infoworld blogger Neil McAllister referred to Perl 6 as having “graduated to vaporware”, and chromatic dissented. McAllester prints a lot of chromatic’s letter and adds his own commentary, and it’s a good read.
I’m glad chromatic wrote it, and McAllister ran the article, but the fact still stands that Perl 6 is vapor enough for most organizations wanting to do anything useful. The fact is that most organizations and users are going to wait for Rakudo Perl 1.0, or maybe Rakudo Perl 1.0 beta 1, before they start sniffing at it.
I wonder how we can merge these two concerns. How can we let people know about the Perl 6 that is usable here and now, such as the November wiki package written in Perl 6, and the features that people can use today and rely on not changing, while still acknowledging that Perl 6 isn’t at the state that people will want to count on?
Does there need to be Rakudo Perl Early Adopter Edition, for example? I understand that any given Rakudo build could be Early Adopter Edition, but I’m talking about releasing and publicizing something that is specifically called that.
(Also, please don’t bother explaining WHY Perl 6 is at the state it’s in. I know why, and the people who are waiting for 1.0 don’t care why. That’s not the point of my question.)
The schedule for YAPC::NA just got published, and there’s plenty of good stuff this year. If you haven’t decided to make the trip out to Chicago June 16-18 yet, this should help.
Cool stuff that jumps out at me as I peruse the grid: JT Smith talking about the premade application stack that WebGUI uses, Schwern on testing data with The Sims, and Kevin Falcone on timezone handling.
For the beginners, Kent Cowgill’s intro to testing is a great way to get introduced to the topic, and I’m sure that Leonard Miller talking about Perl::Tidy and Perl::Critic will help instill good coding practices.
New this year, on Wednesday there will be workshops. Stevan Little will host a 2-hour Moose tutorial, and Jim Keenan will help you get started building and working with Parrot and Rakudo Perl.
Do you have recommendations on must-see talks? Let your fellow Perlbuzz readers know in the comments below.