Perl 6 is Perl 5++

I'm amused reading masak and mst take stock of the Perl 5 vs. Perl 6 issue/debate/brouhaha/whatever. I think mst gets it slightly closer to right (thanks to his refreshing directness), but both miss what I think is an obvious analogy:

Perl 6 is to Perl 5 as C++ is to C

Mostly familiar syntax? Check. Easy to move from one to the other and back again? Check. C++ didn't turn out to be the successor to C any more than I think Perl 6 is the successor to Perl 5.

If Larry had just called it Perl 5++, everyone would have gotten the joke up front and the whole successor meme would never have gotten in the way of things.

This entry was posted in perl programming and tagged , . Bookmark the permalink. Both comments and trackbacks are currently closed.


  1. Taro Nishino
    Posted November 17, 2009 at 11:08 pm | Permalink

    You said!
    I total agree with you.

  2. Ævar Arnfjörð Bjarmason
    Posted November 18, 2009 at 1:52 am | Permalink

    It's not easy to move between Perl 5 and Perl 6 in the sense that it's easy to move between C and C++. Large C programs like the Perl 5 compiler can be compiled with C++ compilers easily if the maintainers are careful not to run into any of the C/C++ edge cases (like using C++ keywords as variable names etc.). This isn't the case with Perl 5 and Perl 6. No Perl 6 compiler is going to compile Perl 5, it'll always be available through some foreign function layer like we make C available to Perl 5 programs now.

    • dagolden
      Posted November 18, 2009 at 5:02 am | Permalink

      I meant it in the sense that programmers can move back and forth -- that the existence of one doesn't mean you stop writing the other. (You make a good point about the compiler.)

  3. Posted November 18, 2009 at 2:15 am | Permalink


  4. Posted November 18, 2009 at 2:36 am | Permalink

    Past the obvious joke, I agree with you 100%.

    I don't think it could have been predicted in 2001, when Perl6 started, and after all it is Larry's right to name the language as he wants.

    I do believe though that naming the language Perl6 has been disastrous PR-wise. It has stuck the current Perl to version 5 for ever, and has given it he appearance of a language on it's way out, that will "soon" be replaced by the shiny new version 6.

    For Perl 6, taking so many years to write a new version of an existing language does not look good either. I mean how many versions of PHP have been released in the past 8 years? The fact that the Perl6 stack is a complete rewrite from scratch, with very ambitious goals, does not appear in the Perl6 moniker, and makes it look like Perl is such a mess that it is impossible to make it evolve.

    In short, the whole thing makes it really easy for people from the outside to bash Perl, both 5 and 6, and could have been avoided.
    It is "just" perception, but with so many dynamic languages available these days, perception definitely impacts reality. I really think that the damage on Perl image has translated into less people learning Perl, less projects using it, and ultimately less Perl jobs.

    Oh well... we'll still do our jobs using whatever version of Perl seems appropriate.

  5. Ed Avis
    Posted November 18, 2009 at 3:46 am | Permalink

    The trouble is that perl5 is crying out for a 'successor' far more than C is or was. C has aged well, but perl5 carries dozens of historical warts and syntax burps that make it unattractive as a new language compared to competitors like Python or Ruby, and even manage to trip up experienced programmers. (Look at Perl::Critic or the Perl Best Practices book for evidence.)

    For me, the hope of an eventual migration to perl 6 is a good reason to stick with perl and the perl community rather than migrating to something else.

  6. Ævar Arnfjörð Bjarmason
    Posted November 18, 2009 at 4:11 am | Permalink

    @Ed Avis: I daresay that if you think C doesn't have just as many historical warts as Perl you haven't read the ANSI C standard :)

    Not that Perl couldn't use a facelift...

  7. Posted November 18, 2009 at 6:02 am | Permalink

    But many of us find C++ to be just awful. I shouldn't think the Perl 6 folks would be happy with this analogy.

  8. mw487
    Posted November 18, 2009 at 7:05 am | Permalink

    So, let's call it perl++ ! perl++ 1.0.0

    Personally, I looked at Python, and have no time to program yet another way, that thinks it is the one right way, but I am reading some of the documentation!

    I am far more looking forward to perl5.12, perl5.14, even perl5.98, than perl 6 or perl++ 1.0.0 (due by Christmas)

  9. John
    Posted November 18, 2009 at 1:09 pm | Permalink

    My plan is to just try Perl 6 on for size and see. I've left Perl 5 before and have come back, and may do so again. Or not. Either way, there's too many very smart people doing an awful lot of hard work on Perl 6 for me not try try it out for at least a project or two.

    I wouldn't say "Perl 6 is to Perl 5 as C++ is to C", because C++ is in most ways a superset of C.

  10. Robert
    Posted November 18, 2009 at 3:04 pm | Permalink

    Perl 5 is to Perl 6 as VB6 is to VB.NET

    Yeah there are some similarities...but that is about it.

  11. Ville Koskinen
    Posted November 22, 2009 at 1:49 pm | Permalink

    But... 5++ is not valid Perl syntax, since 5 is a literal, not a variable. So Perl 5++ is a syntax error, even if you mean "Perl 5"++!

One Trackback

  • By JAP(5|6)H on November 18, 2009 at 10:59 pm

    [...] you, dear reader, already know what this post is about. But on the off-chance that you don’t, make sure you read these posts from [...]