Perl 6 and parrot outsider observations @YAPC::NA

dpisoni on 2006-07-07T19:57:58

(This is adapted from something I posted on my Shopzilla wiki about YAPC::NA.)

At YAPC::NA this year, I heard lots of things about Perl 6 and Parrot, and spoke with many people directly involved with the subject. There seems to be very little consensus about the real state of affairs. These are paraphrased comments from people (individual and composite) who are actually involved in these projects (not just blowhards like myself.)

  • Parrot VM is broken, and probably won't be fixed any time soon.
    • Parrot may hold back perl 6
    • perl 6 might just take off without Parrot, somehow
  • Perl 6 is coming along nicely
    • Radically better than perl 5
    • integrates all the goodness from perl 5, Ruby, etc.
    • Perl 6 should render Ruby and JavaScript 2 irrelevant


  • Perl 6 now!
    • Of course, Pugs is running a version of Perl 6 now
    • Perl 6 is running in Perl 5 now! (or, the Audrey/Ingy öne-twö punch)
    • Audrey Tang and others have perl 6 semantics running on perl 5 using source filtering
    • Ingy döt Net (along with Audrey) has given us Module::Compile which will cause perl to do the source-filtering business only once, and "compile" it into post-filtered perl5, which will be saved (cached) and re-run each time (until you want to edit the real source.) Using this in combination with perl 6 source filtering mojo, you can write perl 6 into perl 5 with minimal deployment/execution penalty.
    • Other pieces of perl6 have been implemented directly into perl5 (search for perl6 on CPAN to see some of the goodies.)


  • Perl 6 is vaporware
    • All of this work has taken too long and hasn't produced anything remotely resembling production code.
    • (my blowhard comment) Perl 6 syntax and semantics reinforce complaints perl critics levy against perl (namely, TIMTOWTDI and expressiveness make for less readable language.) See Periodic Table of Operators for reference.
    • Perl 6 won't really be a good convincing case until it's "too late" (which can mean any of a number of possible perl_doomsday scenarios.)



CPAN is the language, Perl 6 is a syntax.

audreyt on 2006-07-07T21:51:36

I'd like to illustrate the v6.pm view with this v6-alpha CPAN stack.

It is true that Perl 6's syntax is evolving and not for production. However, Perl 6's semantics is much more stable, and most of it has been feature-frozen for many months now.

...and that's why we can implement the semantics as pure Perl 5 modules, such as Moose, that involes no precompilation, and that you can use just like regular CPAN modules.

And it's okay for only the underlying layers be production-quality for a while. People who'd like to help out with the surface syntax can hack on with "use v6-alpha" and integrate seamlessly into existing Perl 5 code; people who are just after some of the nice Perl 6 semantics can use the CPAN modules separately, without the need to switch syntax.

Re:CPAN is the language, Perl 6 is a syntax.

dpisoni on 2006-07-15T20:31:28

Audrey,

Your comment has illustrated more clearly and concisely to me the direction perl 6 is heading. (Perhaps I should have attended one of your talks on the subject.) I've started digging into Moose and Class::MOP, and so far I like what I see. I'll have to look at some of the other items you list in your "Semantics" layer for more insight. More importantly, it now appears to me (much more than it ever has before) that there is both continuity and a clearer path to migration than I realized heretofore.

Thanks for "cutting through the mud" for me. It was quite helpful.

Many levels of belief and disbelief.....

hfb on 2006-07-08T08:21:18

I think even someone not into computing, perhaps especially so, would be able to pick up on the conflicting messages being emitted about P6. Much of the problem is due to the 'if we ignore it it'll go away' philosophy coupled with those deeply involved with certain integral parts of the project speaking much more openly and candidly in dark corners with trusted listeners. Parrot is the poster child of this problem and it, indeed, raises significant doubts about the p6 project as a whole. Problems that everyone involved knows about but won't discuss publicly lead it nowhere good. Those without near-religious dedication to Perl likely sense this with even the most cursory observations and will probably move on without a compelling reason to stay.

Because P6 has taken the tack of forgetting its original impetus and refusing to acknowledge publicly the problems and rumours that plague it much in the same way as the current US administration, it has become something of a quixotic exercise in academic wankitude. Whether or not it will be the Snobol of the 2000s or 2010s remains to be seen.

Re:Many levels of belief and disbelief.....

nicholas on 2006-07-08T17:01:11

speaking much more openly and candidly in dark corners with trusted listeners

People do that about employers too, so I'm not sure if this activity in itself is really saying anything about the project.

Re:Many levels of belief and disbelief.....

hfb on 2006-07-08T21:25:14

Yes, and those people leave, voluntarily or otherwise.

Re:Many levels of belief and disbelief.....

nicholas on 2006-07-09T02:35:41

If it becomes bad enough, true. [Given that all employers suck, to some degree. It's just minimising the suck, and trading unimportant suckage to reduce suckage in the areas that really matter to you. "Life is pain, Highness. Anyone who says differently is selling something" a.k.a. a recruiter]

Re:Many levels of belief and disbelief.....

audreyt on 2006-07-08T18:40:20

I agree, and my entire effort in Perl6/Pugs/Parrot development has been refusing to participate in closed lists, communicate solely in public channels, and strive to bring everyone involved into those public channels (e.g. getting leo and TimToady on IRC).

I'd say by working with p5p, we are getting back to the route of expressing the parts of Perl6 that actually solves real-world problems (class introspection, fast method calls, named params, constraints, macros) into Perl5 land, and the surface syntax -- even if it's SNOBOL -- wouldn't matter; CPAN is still enriched, and Perl5-the-VM gets more external stimulus at refactoring and cleanups.

Re:Many levels of belief and disbelief.....

hfb on 2006-07-08T21:33:14

You are but one. This is me being optimistic. :) Still, the original complaint that there are loud and conflicting messages throughout the project as a whole is real and valid. People talk and especially when those people have a bit of credibility one must consider that perception is reality.

Re:Many levels of belief and disbelief.....

dpisoni on 2006-07-15T19:59:10

I wouldn't characterize my posting as a "complaint" per se, merely an observation. I recognize that a great deal of chaos is needed in order for our community process to work – in the end it usually works itself out to a better-than-favorable solution.

Regardless, my whole point in posting this is to say:
  1. yes, the community is divided on the future of perl 6 and parrot, though I'm not making any value judgement on that;
  2. here is a sampling of the matrix of opinions I have encountered (mostly talking to people at YAPC, though with a few exceptions.)

One opinion I left out...

dpisoni on 2006-07-15T20:03:27

This one I found rather peculiar, and I can't remember who said it to me (at YAPC):

  • Paraphrasing: Perl 6 won't really prove itself as a language until it is self-hosting.


My response was simply, Can you name any dynamic languages that are self-hosting? No one at the table could – perhaps someone else knows. Personally, I don't see why this matters so much. Perhaps some benefit would be derived from having parrot (or whatever the ultimate VM ends up being) be self-hosting, but I'm not convinced of that either.