http://www.perlmonks.org?node_id=485426

In the beginning, the Perl6 project was announced.

And then came a joke, a joke that said that Perl and Python would merge in a new language called Parrot.

And then the joke became in some way real, and the name Parrot was given to a new virtual machine on which Perl6 (and possibly Python) will run.

And then came RFCs. And then the Apocalypses. And Synopses and Exegeses, and a book by O'Reilly.

And there were and there are Parrot releases. And then came Pugs and there were and there are Pugs releases, too. Oh, and we have Perl6::* modules on CPAN, too!

And there were and there are also many mailing lists, and summaries on perl.com.

And that's a lot of stuff, and anybody that wants to know more about Perl6 can read from that stuff and learn some more; and anybody willing to try some Perl6 can test some software, too.

But, in the end, look at this (apparently) simple question:

How much Perl6 have we got now? Where are we with the specification? Where are we with the implementation? At which point each progressbar is?

Is it really a simple question, indeed, or is it as falsely simple as it was Fermat's last theorem?

Update: modified the timeline, thanks to davorg for pointing the error out

Ciao!
--bronto


In theory, there is no difference between theory and practice. In practice, there is.

Replies are listed 'Best First'.
Re: How much Perl6 have we got?
by dragonchild (Archbishop) on Aug 21, 2005 at 02:27 UTC
    It is very simple to answer - we have most of it. You can download Pugs (from http://www.pugscode.org/) and run many P6 programs right now. The class metamodel is almost done (stvn is working on it) and autrijus is implementing it faster than he can design it.

    Other notable items:

    • the Perl6 namespace on CPAN right now
    • PIL, which is allowing P6 to compile to, among other things, Javascript
    • an amazing number of tests in the Pugs testsuite.

    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?
      It is very simple to answer - we have most of it.
      Yeah...simple indeed. Of course when someone says that "most" of something is done, there's an implication that whomever is working on it would have a reasonable estimation of a completion date. Moreover, if they have an estimated completion date, it's sometime in the near future. Perhaps I'm being cynical, but whenever I glance at "This week in Perl 6" on perl.com, there's some pretty fundamental stuff being ironed out still. Not that therey's anything wrong with that; it's a big project. You'll forgive me if I don't agree with your assessment of the situation.

      This is also what keeps me away from Perl 6 except for curiosity. I want to wait until there's an official, 100% done version in my hands before I take on the task of learning anything of the language. Why? Right now, I have no guarantee that some feature isn't going to be completely re-written and/or obviated tomorrow. Again, I'm fine with this; Perl 6 is stil in the design stage...a stage in which things are supposed to change. However, my sanity doesn't play well with moving targets.

      I'm also in awe of the Pugs project. Again, however, I don't want to write programs that are ahead of the runtime. That is to say that Pugs isn't a feature complete version of Perl 6. It can't be; Perl 6 isn't done. My luck being what it is, I'd write some program based on the specifications and Pugs will have not implemented some key feature of that program. I'm not saying that I'm sort of über coder, just saying that I'm unlucky. ;)

      thor

      Feel the white light, the light within
      Be your own disciple, fan the sparks of will
      For all of us waiting, your kingdom will come

        My luck being what it is, I'd write some program based on the specifications and Pugs will have not implemented some key feature of that program. I'm not saying that I'm sort of über coder, just saying that I'm unlucky. ;)

        What is wrong with that? This type of thing has been driving the Pugs project from the very begining. I started writing (failing) tests based off the Synopsis in the early days of the project, and within days autrijus would have turned them into passing tests. Both chromatic and Darren Duncan and their work on the p6 versions of Test::Builder and Locale::KeyedText respectively, drove much of the early OO functionality in Pugs. The current work on the Javascript and Perl 5 backends have helped fuel autrijus's work on PIL (Pugs Intermediate Language) and my work on the Object MetaModel.

        My point is really that Pugs is a different sort of project than your usual compiler/interpreter project. It is (in autrijus's words) optimized for fun. And autrijus has always said he does not intend Pugs to be "the" Perl 6, and one of the original goals of the project was to help iron out the design of Perl 6 itself by providing a reference implementation.

        Another thing about Pugs is that all you need to do to get a commiter bits is ask, and all you need do to get your name in the AUTHORS file is contribute something (even commiting it yourself is not a requirement). No one is expected to contribute any more then they want to or can. Because after all, it's optimized for fun :)

        -stvn
        A reply falls below the community's threshold of quality. You may see it by logging in.
        I concur. Watching the Lambdacamels go is fascinating (and humbling), but I've decided to wait for the Perl 6 version of the Llama before I try to start coding in it, or even worry about it anymore.

        P.S. mad props for the Manowar sig

        There's another way of looking at it .... if you code stuff in pugs, then you're way ahead of those who don't, as far as being Perl6-ready. Of course, i wouldn't advise coding anything intended for production, but it's worth exploring fun stuff in your spare time.

        --
        TTTATCGGTCGTTATATAGATGTTTGCA

      Speaking of which, is there a binary package of Pugs for OSX? Like PxPerl, which is compiled for Windows OS ?

      Perl 6 is not ready, period! Don't sound like a salesman who does not know his job.

        *looks back over his post*

        *looks over it again*

        I'm sorry, but I can't find in my reply where I said Perl6 is "ready" for anything, other than more work. Would you mind cut'n'pasting a quotation so that I can respond to it?


        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: How much Perl6 have we got?
by davorg (Chancellor) on Aug 22, 2005 at 08:17 UTC

    In the beginning, there was a joke. A joke that said that Perl and Python would merge in a new language called Parrot.

    And then come the idea of Perl6, and the name Parrot was given to a new virtual machine on which Perl6 will run.

    You have that slightly out of order. The announcement of Perl 6 was in July 2000. Simon Cozens' Parrot joke was April 1st 2001. Here's Simon's article about the joke.

    --
    <http://dave.org.uk>

    "The first rule of Perl club is you do not talk about Perl club."
    -- Chip Salzenberg

      So, did the joke inspire the real Parrot or was the idea of a multi-language virtual machine already being worked on?

        I don't think the joke made people think "actually, that's want we really need for Perl 6". But once someone came up with the idea of multi-language virtual machine it didn't take long for someone to remember the joke and realise that the VM had to be called Parrot.

        --
        <http://dave.org.uk>

        "The first rule of Perl club is you do not talk about Perl club."
        -- Chip Salzenberg

Re: How much Perl6 have we got?
by kiat (Vicar) on Aug 22, 2005 at 15:16 UTC
    I venture to say that the journey to Perl 6 will be harder than the one Perl 5 has taken to its present stage.

    Perl 5 evolved, taking many small steps along the way. It's a bit like a baby growing. You hardly notice it grow but it's growing all the time. Then one fine day it becomes an adult, with all its learned systems of human behaviour.

    Perl 6 is like trying to clone an adult. When it's out, it's expected to do what Perl 5 can do, and much more. So it's harder, because it doesn't have the benefit of those evolutionary steps.

How much Perl6 have we got? Nobody knows...
by bronto (Priest) on Aug 24, 2005 at 08:49 UTC

    Sadly enough, nobody could tell an estimate of the progress, neither in percentage nor in time. That doesn't look as a good thing to me :-(.

    Ciao
    --bronto


    In theory, there is no difference between theory and practice. In practice, there is.
      I don't know about Perl6, but you can derive a percentage of progress for Pugs pretty easily, simply by looking at the first two numbers in Pugs versions. We are currently at 6.2.x (1st milestone), approaching 6.28.0 (2nd milestone), out of six milestones (6.283185.0), so I'd say we're between 1/6 and 2/6 there, or maybe around 30%.

      Considering that it took us 211 days to reach here, it's easy to derive that there are 492 more days to go. Obviously, with your help, we can reach there sooner still. :-)

        Of course, that ignores the truism that at any stage of development, the current estimate of remaining time should be doubled. If you double your estimate before announcing it, of course, it'll just need to be doubled again.

        print substr("Just another Perl hacker", 0, -2);
        - apotheon
        CopyWrite Chad Perrin

      Oh, that's easy. 80%.

      All nontrivial software projects are at one of:

      • 0%
      • don't-bother-me-right-now
      • 80%
      • obsolete

      I work for Reactrix Systems, and am willing to admit it.

        I think that describes a fair number of trivial software projects, too.

        print substr("Just another Perl hacker", 0, -2);
        - apotheon
        CopyWrite Chad Perrin