I could be talking about the Perl 5 Corehackers project introduced by Chip Salzenburg at YAPC::10 in Pittsburgh last month -- but I'm not. More precisely, I'm not talking about the Corehackers project *yet*. I'm talking about the Phalanx Project.
The Phalanx Project was an idea first introduced by Andy Lester in 2003. In the Phalanx project, groups of Perl developers would select frequently used -- but non-core -- CPAN distributions and, with a green light from the authors or current maintainers of those distributions, refactor them, write more tests for them and improve their documentation. At first few people knew of the Phalanx Project, but Andy retooled it somewhat and presented it at YAPC::NA::2004 in Buffalo, which is where I first heard about it.
By the summer of 2004 I had been the lead organizer of Perl Seminar New York for four years, had begun contributing distributions to CPAN, and had begun speaking at YAPCs in Canada and the United States. But much of my work was done working by myself at home and I was eager to play a role other than meeting organizer and to collaborate more directly with other Perl folks. I seized on the idea of the Phalanx Project as a hook to gather other New York City Perl people in to working on a project collectively, with face-to-face hacking being the most important aspect of the collective work.
I've spoken about our part in the Phalanx Project elsewhere, so let me get to the essentials. By June of 2005 we (Marc Prewitt, David H Adler, Alex Gill and myself) had done major work on two CPAN distributions: Text-Template and HTML-Template. We submitted our work to the authors of each distribution. Marc and I presented on the Phalanx project at YAPC::NA::2005 in Toronto.
And then, silence. Despite repeated nudging, both by email and in person, we got no feedback on our work from the distribution authors -- for years. Finally, in 2007, quite a bit of our code was incorporated into one of the distributions and we got a commendation from the distribution's author. On one of the few occasions when I ever met that distribution's author in person, he commented, "Don't break it. It's my baby." (It was, I believe, his first CPAN distribution.) As for the other distribution: We never got feedback from its author and it appears none of our work was incorporated into the one CPAN release which that distribution has had in the past four years.
The members of the New York City part of the Phalanx Project learned a tremendous amount about careful preparation and testing of libraries in the process, but only part of our work actually made it out to the larger Perl community. My impression is that that was the outcome in the one other locality in which a group of people came together to phalanx a CPAN distribution. So the Phalanx Project was only modestly successful.
I tell this story now because there are many similarities between the Phalanx Project and the Perl 5 Corehackers Project. Fast forward from YAPC::NA::2004 at the University at Buffalo to YAPC::10 (NA::2009) at Carnegie-Mellon University in Pittsburgh. For Andy Lester as inspiring presenter, see Chip Salzenburg. For target codebase, see Perl 5 core instead of prominent CPAN distributions. For CPAN distribution authors, substitute the Perl 5 Porters.
But the thrust of the two projects is remarkably similar: Gather both veterans and, especially, newcomers -- people who may previously have never thought themselves qualified to work on the targeted code base -- to hack on important parts of the Perl 5 ecosystem and generate patches that the 'owners' of the code -- those who have commit bits -- would, it is hoped, apply to the code base.
And there's the rub. You could work your butt off refactoring some part of the Perl 5 core distribution, have all the tests you need to demonstrate that you haven't broken anything and have written clear, helpful documentation -- and still not get any feedback from the people who have the final say on the work you've done. You don't have a commit bit.
So while I was very glad to hear Chip's presentation about the Corehackers Project -- and am even meeting with David Golden this week to discuss how I might participate -- I must confess to some trepidation about how the relationship between the Perl 5 Porters and the Corehackers Project will evolve. My guess is that those who choose to participate in the Corehackers will develop considerable psychological investment in their work. And it's evident from the recent controversies over the Perl 5.10 release process that the Perl 5 Porters have considerable psychological investment in their work and the ways they have evolved to conduct that work. I could even see Porters saying, "Why do we even need a Corehackers project? Nothing's keeping you from submitting patches to p5p today."
So the Corehackers Project, to be successful, must face some important questions, both on its own and in conjunction with Perl 5 porters. Among these questions, at least two occur to me right off the bat:
Now, up until two years ago, I simply ignored that question, because I had my hands full learning to become a good Perl 5 programmer and had no time/tuits to follow anything related to Perl 6.
But since I was recruited to the Parrot project in November 2006, I've had to take that question more seriously. My stock response goes like this:
I don't have the time to follow developments in the Perl 6 language specification. I do follow the development of the Parrot virtual machine. We expect to have our 1.0 release during the first half of 2009. You can view the Parrot roadmap.
Of course, that's not the response that the questioner was looking for. So what I would like to know is if there is one site to which I can direct such questioners which says:
1. How complete is the development of the Perl 6 language specification.
2. What percentage of the completed Perl 6 language specification has been implemented on Parrot (Rakudo)?
If we don't have such a site, what would be the obstacles to developing one?
Thank you very much.
Parrot release manager Bob Rogers wrote on Tuesday, August 19:
On behalf of the Parrot team, I'm proud to announce Parrot 0.7.0 "Severe Macaw." Parrot is a virtual machine aimed at running all dynamic languages.
Parrot 0.7.0 is available via CPAN (soon), or follow the download instructions at here. For those who would like to develop on Parrot, or help develop Parrot itself, we recommend using Subversion on the source code repository to get the latest and best Parrot code.
Parrot 0.7.0 Highlights:
Parrot 0.7.0 News:
Many thanks to all our contributors for making this possible, and our sponsors for supporting this project. Our next scheduled release is 16 Sep 2008.
-- Bob Rogers
I vote No, for most of the same reasons already posted by chromatic.
I like Test::NoWarnings. Its author, Fergal Daly, is one of the sharpest people in the Perl QA world. But Test::Warnings is not part of the Perl core distribution. So to earn this proposed Kwalitee metric, I would have to include Test::NoWarnings underneath the
t/ directory in each one of my CPAN distributions. That's pointless.
To the latter first: Torvalds opens his talk by saying that for the purpose of his talk, anyone who defends CVS or CVS-based version control systems such as Subversion is "ugly and stupid." At this point one would assume that he is speaking tongue-in-cheek. But he repeats this characterization a number of times in the 70-minute talk and further characterizes the authors of Subversion as "morons." This leads me to believe that he is not simply having a little fun but does in fact hold the authors and users of these VCSes in contempt. In his characterization of the human beings writing or using these VCSes I find no trace of generosity -- only scorn.
Torvalds' hostile tone toward the people involved with other VCSes ultimately undermines the case he makes for git, IMO. I'm certainly open to an argument that what he characterizes as 'distributed' source code management is better than a 'centralized' system. But I would want to hear that argument from someone who is not heavily invested in dissing the people who disagree with him.
If there are any readers of this post who were present in the Google audience for Torvalds' talk, I would welcome comment as to whether my impression as a viewer of the video matches yours.
Winter 2007: Big ad campaign appears in New York City subways encouraging riders to apply for high-tech jobs in Ireland. (One member of Perl Seminar NY has already been hired to work for Google in Dublin.) New York Times reports that, with continuing decline of dollar versus euro, many Irish are buying condo apartments in Manhattan because in exchange-rate adjusted terms, they're cheaper than apartments in Dublin -- and you can rent them out for more than you could get in Dublin, as well.
Last month I spoke at a local (non-Perl) users group. They needed a last-minute substitution for a speaker who couldn't make it, so I gave what was more or less the talk on maintenance of CPAN modules I gave at YAPC in June. There was a guy in the first row who was evidently out to bait me. His first question was, "I hear Perl is dead."
I cited the strength of this year's YAPC, the vitality of the Perl community, etc. Since I felt he was simply trolling, my response was brief so I could get on to a more on-topic question.
This week, fresh off the plane from the Chicago Perl hackathon the popping of my Parrot/Perl 6 cherry, I was coming out of the subway on my way to work when I ran into a fellow I've known for several years. He used to attend Perl Seminar NY fairly regularly. He spoke two or three times, always did good presentations and always impressed me with the breadth of his professional experience, with respect to languages, OSes and areas of focus.
So he says (I'm paraphrasing from memory), "At my shop (a medium-sized investment bank) the amount of Perl that people are writing is really going down. People are writing a lot of JRuby and JPython because the Java libraries have gotten so much better and Perl 6 hasn't come out."
I didn't want to get into an argument there, but I urged him to come back to perlsemny some time and share his experiences working in non-Perl environments. That night I formalized that a bit by inviting him to speak at perlsemny, but in my email I also noted the big upsurge in postings on jobs.perl.org and that the fact that Perl, at long last, had enable me to get an IT job.
I work at a Perl shop, so the amount of Perl being written there is in no danger of declining. But a lot of my colleagues, who are all Perl programmers but only a few of whom participate in the Perl community, are clearly skeptical that Perl 6 will be worth the wait for it. Since I have to agree that the wait has been, shall we say, protracted, I don't have much to say in response. (I guess my own response has been to finally find a niche of the Perl 6/Parrot project I can work on -- but that's not everybody's approach.)
I'm wondering how the rest of you cope with potentially FUD-dish attitudes toward Perl.
About two years ago this time I helped organize a Perl Seminar NY contingent of the Phalanx project. When I pitched the project to our members, I emphasized the joys of collective hacking. And it proved very enjoyable indeed (and profitable for the bar where we met to do this hacking!)
We didn't do as much collective hacking in the 2005-06 season, but with our 2006-07 Perl Seminar NY season about to begin, I'd like to rev up some interest among our members.
I know of some of the collective hacking projects going on in the Perl community right now, and I'll be participating in the Chicago Perl hackathon next month. But just in case I've missed any, I'd like to ask you to respond to this Meditation by posting ongoing projects (e.g., Vanilla Perl, Module::Build) and their weblinks.
And, for extra credit, if you think that any of these projects could be broken up into components suitable for face-to-face hacking by local Perlmonger groups, please so indicate.
I like online projects, but I don't like to hack or drink alone.
Thanks in advance.