in reply to Perl 6 - I hope it won't take a decade

There's at least three separate and (somewhat) unrelated projects going on here, all under the banner of "Perl6".
  1. The design of the Perl6 language

    This is taking place primarily on perl6-language and Freenode#perl6 and is probably going to take about another year to fully complete. The vast majority of the language has been specced out and you can use a lot of it right now in Perl5.

  2. Pugs

    This is the testbed for Perl6 language design. It's the place that two very important things are taking place:

    1. Language features are being tested
    2. Tests are being written for language features
    The goal is that the test suite written for Pugs will be test suite for Perl6. That's a huge development effort that needs to happen that's happening right now.

    Another rather neat side-effect of Pugs is that multiple VMs are targetable by Pugs, including Parrot. This is demonstrating a rather interesting feature of separating language from implementation which no Perl version has ever had.

  3. Parrot

    Parrot is the primary VM target for Perl6. This is probably going to take at least another 2-3 years for a stable Parrot to come out. But, it's arguably the most ambitious F/OSS project ever undertaken. The idea that a group of (mostly) volunteers can create a VM that will be able to run nearly every language ever designed on nearly any OS ever deployed and do so with good performance characteristics is still being laughed at. Yet, it's becoming a reality. Ten years for something like that isn't too long to wait, imho.

    Did I forget to mention that you will be able to run a program in one language and use libraries from another, so long as all the languages run on Parrot? That smells like a .Net killer, to me ...

  4. PGE

    The Perl Grammar Engine. This is what will let you redefine Perl6 syntax within a given scope. This should take about another year or so. (It would go quicker if Patrick didn't have to write it in PIR, which is a glorified assembly language.)

Personally, the most interesting aspect of this is taking the ideas generated on P6l and port them to Perl5. There's a ton of things that can be brought over to making our lives easier.


My criteria for good software:
  1. Does it work?
  2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
  • Comment on Re: Perl 6 - I hope it won't take a decade

Replies are listed 'Best First'.
Re^2: Perl 6 - I hope it won't take a decade
by blazar (Canon) on Jan 18, 2006 at 15:21 UTC
    The design of the Perl6 language
    This is taking place primarily on perl6-language and Freenode#perl6 and is probably going to take about another year to fully complete. The vast majority of the language has been specced out and you can use a lot of it right now in Perl5.

    And in the meanwhile evolution doesn't stop:

    Me too. If it's any comfort, just think of the design of Perl 6 as a genetic algorithm running on a set of distributed wetware CPUs. We'll just keep mutating our ideas till they prove themselves adaptive +. - Larry Wall in p6l, "Re: Adding linear interpolation to an array"

    It may seem sucidal at first sight to keep the doors open to further enhancements and changes in the basic syntax and semantics while there's an implementation being written -albeit an "unofficial" one-, but so far there's not been evidence of any major issue related to this. So I'm very positive about future developements!

Re^2: Perl 6 - I hope it won't take a decade
by jdporter (Paladin) on Jan 18, 2006 at 15:16 UTC
    ...you can use a lot of it right now in Perl5.

    How? I understand there is a Perl6 namespace in perl5; is this where most/all of these things have been put? Or is there a handy index of such things somewhere?

    TIA...

    We're building the house of the future together.
      Anything that explicitly uses a Perl6-like syntax tends to live there. However, not everything that's been inspired by Perl6 is in the Perl6 TLN. For example, in Re: Using perl 6 roles in perl 5, I list four different implementations of roles in P5. Even though I wrote Perl6::Roles, it's arguable that Class::Trait (written by stvn and maintained by ovid) is going to be closer to the final P6 roles than my implementation (even though half the tests for mine were written by stvn).

      This is most true in the OO-space. Since the OO metamodel for P6 is still being designed (in large part by stvn), the P5 playthings for this aren't in the Perl6 TLN. They're primarily in the Class TLN. Look for distros written by Luke Palmer and Stevan Little, among others.


      My criteria for good software:
      1. Does it work?
      2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
Re^2: Perl 6 - I hope it won't take a decade
by demerphq (Chancellor) on Jan 18, 2006 at 18:51 UTC

    The Perl Grammar Engine. This is what will let you redefine Perl6 syntax within a given scope. This should take about another year or so. (It would go quicker if Patrick didn't have to write it in PIR, which is a glorified assembly language.)

    Are you serious? About the PIR bit? Also I did a search on PGE and didnt get a lot of useful hits on google (I have terrible google-fu tho), I'd like to look into this to see if I feel up to contributing, but I have to admit I dont see anything I can start with. Where can I get an overview of the status and design of PGE?

    ---
    $world=~s/war/peace/g

      demerphq,
      Glad to see everything I was telling you about this sunk in ;-). pmichaud originally wrote PGE in C but the current project is in PIR. PIR (Parrot Intermediate Representation) is just marginally higher than Parrot assembly (PASM). Don't let that deter you though since PASM is an OO assembly language.

      Besides the information in the parrot repository, you can search for PGE related posts in Perl6.Compiler. I would also recommend talking to Patrick directly.

      Cheers - L~R

        pmichaud originally wrote PGE in C but the current project is in PIR.

        Wow. There must be a good reason for this, but for the life of me, I can't figure it out. Why would you write this in an assembly languge (can you say maintenance nightmare?!?), instead of a high level language? Isn't that what compilers are for? I'm beginning to think a decade is optimistic. Is it just me, or does it seem like anything that touches Parrot turns to stone? Thank goodness for Pugs and A. Tang & Co.

      AFAIU it's a part of Parrot. The README and STATUS document may help.


      There are ten types of people: those that understand binary and those that don't.