Counterfactual Perl 6

Several recent posts (more here and here) discuss whether Perl 6 is an impediment for progress of Perl 5 and debate remedies involving changing the name of one or the other. The problem I have with these debates is that they sideline the realities of the current situation in favor of romanticizing a counterfactual.

The counterfactual is this: "If Perl 6 never existed, then Perl 5 could bump itself to Perl 6 NOW in order to signal a backwards-incompatible break from the past."

If the counterfactual were true, I believe this could happen, even with the limitations of the Perl 5 development process we have today. Perl 6 (as it actually does exist today) is revolutionary design, not evolutionary design, but that doesn't preclude an evolution of Perl 5 that significantly breaks backwards compatibility.

Without recommending any particular change, here are some examples of things that I think could be possible, just to give a sense of what evolutionary (rather than revolutionary) changes could attempt:

  • Replacing eval BLOCK syntax with try BLOCK
  • Removing of Unix-specific user/group functions and similar cruft
  • Eliminating of indirect syntax
  • Replacing method call arrow -> with the shorter (and more widely recognized) dot/period character (and finding a new concatenation operator)
  • Eliminating version objects and v-strings
  • Replacing (frequently misunderstood) function prototypes with function signatures

Those are just ideas off the top of my head, but I hope it's easy to see than any of those break enough existing code as to make them very difficult to envision being added to any future release of Perl 5. However, if the counterfactual were true, then there would always be the option of making a clean break to "Perl 6", ensuring that there is no automatic expectation of backwards compatibility.

Even if the counterfactual were true, making such evolutionary changes would not necessarily be easy. It would require a Pumpking (other than Larry Wall) to play language designer for Perl 5 and to push the Perl core developer community into a rough consensus. But hard does not mean impossible.

However, with the reality of Perl 6 as it stands, even a name change by Perl 6 ("Camelia" was one suggestion) doesn't help Perl 5's evolution. Given the expectations that have been set for Perl 5, it seems unlikely to me that there would be broad community support for Perl 5 evolving into Perl 6 if Perl 6 were renamed. "Hi, we promised you Perl 6 ten years ago, but it's not ready for production, so we're going to call this other thing Perl 6 instead." I don't think that's great for external perceptions, either. What then? Jump over Perl 6 straight to Perl 7? I don't think that would be well received, either.

For Perl 5 to evolve in ways that are significantly backwards-incompatible, I see only two realistic options:

  • Rename Perl 5 to something else, with all the associated branding and marketplace traction issues that would cause, but with the ability to make a major version number bump to manage compatibility expectations.
  • Increase the speed of mutation of Perl 5 so that Versions 16, 18, 20, etc. become bigger departures cumulatively than we ever saw with Versions 6, 8, 10, etc., and become much more ruthless about setting future compatibility expectations.

(I suppose an interesting variation on the first way would be for Perl 5 and Perl 6 to be renamed simultaneously. I could see that having some positive opportunities for branding and marketing.)

The status quo alternative is for Perl 5 and Perl 6 to continue as they have been, slowly chugging along on their respective tracks. Perl 5 will continue to put backwards compatibility over evolution and won't see substantial new features added or old mis-features cleaned up. Perl 6 will continue to push towards some sort of production readiness.

For some (perhaps many), the status quo is ideal. For me, I would find it rather boring to be a part of.

So -- let that be the real debate in the Perl 5 community: compatibility or evolution? Names and version numbers are just the means to an end.

Posted in p5p, perl programming, perl6 | Tagged , , , | 13 Comments

Throwing in the towel

A little over two years ago, I accepted the Perl Iron Man challenge. I found the challenge inspirational, and did a lot more blogging about projects I was working on than I would have otherwise. Hopefully, those who read my posts found them helpful, or at least interesting enough for the time it took to read them.

However, as I reflect on the doubling of my parental responsibilities and a pending shift to more entrepreneurial employment, I've decided to throw in the towel on Iron Man. I plan to keep blogging, but probably not at the pace I've been, nor always about Perl. I have new challenges in front of me and new projects in mind to tackle them. Of course, when they involve Perl, i'll be sure to mention it.

Stay tuned...

Posted in meta, perl programming | Tagged , | 7 Comments

Will CPAN Testers keep doubling every year?

A little over a year ago, the CPAN Testers 2.0 beta went live. The new "Metabase" server started accepting reports by web submission instead of the previous method of email-based reports.

In the April CPAN Testers Summary, Barbie noted that CPAN Testers has nearly reached 12 million reports submitted.

I was recently looking at some Metabase statistics and noticed that it now contains over 6.3 million reports since going live. That means that over half of all reports were submitted by web instead of email. It also means that CPAN Testers has nearly doubled in a year.

The year has not been without hiccups, as the recent Amazon-related outage showed. I'll be spending some time this summer addressing some deficiencies and will be encouraging people to get involved in improving the CPAN Testers clients to make it easier for more people to participate.

Next year, will we see 24 million reports? Let's make it happen!

Posted in cpan-testers, metabase, perl programming | Tagged , , , , | 4 Comments

Parallel Perl Pupils Petition PAUSE

Today I saw about half-a-dozen suspiciously similar PAUSE ID requests, apparently from students taking a parallel programming course from University of La Laguna in Spain Tenerife. After little Google searching, I suspect it might be this course: "Programación en Paralelo II", taught by CPAN author casiano.

I'm surprised and pleased to see a course like this covering Perl, particularly when it encourages students to contribute back to the community by publishing on CPAN.

If you know anything about this course (or are taking it!), please post about it in the comments or provide a link to a blog post of your own with more information.

Posted in perl programming | Tagged , , , | 2 Comments

CPAN Testers Metabase back online

I'm pleased to say that after weathering Amazon's EC2 outage, I've got the CPAN Testers Metabase server back online and accepting reports.

If you've been building up a backlog, please throttle your uploads.

I apologize for the interruption. Over the next month or two, I'll be making some changes to make sure that CPAN Testers is ready for a repeat of this particular failure mode (as well as other similar failure modes).

Posted in cpan-testers, metabase, perl programming | Tagged , , , , | 1 Comment

© 2009-2012 David Golden All Rights Reserved