Is there any visible progress? Is it now just an academic exercise? Do you believe Perl will continue to evolve with or without Perl 6 or will soon be forgotten?
I feel like some good things may come from Perl 6 (e.g. parrot), but I'm not counting on ever doing anything with the language.
In the bioinformatics development group where I work, we're encouraging use of Python for new development where Perl would have been the language of choice in the past. Python appears to provide a better path forward for us.
It'll be out by Christmas. ;-) I've heard on podcasts that there there will be some kind of alpha before this Christmas. They were explicit about that but it has been a while since I heard that.
At the risk of sounding like a Perl fanboy, I'm still excited about Perl 6 and feel like the end result will be relevant when it's released. The last nine months have yielded some nice accomplishments on the Parrot front () and have even resulted in some sizable donations to help fund increased development.
From a recent blog post:
Rakudo currently supports arrays, hashes, classes, objects, inheritance, roles, numeration types, subset types, role composition, multimethod dispatch, type checking, basic I/O, named regular expressions, grammars, optional parameters, named parameters, slurpy parameters, closures, smart match, junctions, and many other features expected from Perl 6.
Keep your eye on Rakudo.org (Rakudo is the name of the Perl 6 implementation built on top of Parrot) for news on the ongoing development process of Perl 6.
Perl 6 is moving along nicely. Perl 6 is a bit unlike previous Perl's in that Perl 6 is actually a language specification not an implementation of it. The reference implementation on top of Parrot that is the main thrust of the Perl 6 project has been renamed Rakudo and is moving along nicely. The best place I've found for news about it is http://planetsix.perl.org/. Currently, as far as I understand it, most of the important features of the language are implemented and they are fleshing out the rest and writing tests. You can download it and test it out a bit. The easiest way seems to be the cygwin version which has been bundled up and made into a cygwin package.
Slow and late. It has a terminal case of second system disease. When I was a Perl hacker (back in the day), they had been working on Perl 6 for two years. That was 6 years ago. You could build a whole operating system in that time.
You should not forget that Perl 5 is being developed in parallel. 5.10 was out not so long ago with new features and additions to the language.
Progress on Perl 6 is slow but steady, PUGS (Perl 6 over Haskell ) has been stalled for a while but Audrey might resume workingon it soon. In the mean while Rakudo (Perl 6 over parrot) is progressing well. Here is a post detailing various implementations progress
Realistically I would not hold my breath for it but no matter how late it will be I think when it comes out it will still be relevant.
Perl 6 is evolving slowly but steadily. Larry Wall wrote a Parser that can parse all Perl 6 that we know of (which is basically the test suite plus a bit of other code). Rakudo, which is Perl 6 on Parrot, also performs nicely. You can track its progress in the test suite with the charts on rakudo.de
Note that it's a radically new language, and not trivial to implement. I don't expect a usable version before next year, and even then it will take quite some time for any implementation to become as mature as Perl 5 is today (which has had 20 years to develop a stable code base).
The ability to target other languages to the parrot vm, will make it trivial to make a product using what ever languages you are comfortable with.
List of languages with recent activity, or at least tested with latest parrot (as of 2008/09/22):
*taken from languages/LANGUAGES_STATUS.pod*
- APL
- bf
- Cardinal (Ruby)
- Chitchat (Smalltalk)
- Cola (Java)
- Common Lisp
- Eclectus (Scheme)
- ECMAScript
- HQ9+
- Jako (C/Perl)
- JSON
- lazy-k
- lolcode
- Lua
- Parrot m4
- Markdown
- NQP (Not Quite Perl)
- Rakudo
- Pheme (Lisp-2 compiler inspired by Scheme)
- Pipp (Pipp is Parrot's PHP)
- PJS (wiki)
- Punie (Perl1)
- regex
- Squaak (Squaak is not Squeak)
- partcl (TCL)
- unlambda
- WMLScript Translator
Perl 5 will continue to be wonderful and available even if Six never comes to fruition. Six invigorated Perl 5, and Perl 5 continues to experience many wonderful new things, such as Moose.
I think Perl 6 will be completed some day and will be good, but for now, I'm a Fiver, and I'm happy like that.
Please see the Official Perl 6 Wiki to find the latest information:
http://www.perlfoundation.org/perl6/index.cgi?perl_6
The latest headlines from 2 leading Perl 6 blogs are shown at the bottom of the official Perl 6 wiki home page.
There's lots of other useful information and links there.
For example, recent Perl 6 articles and presentations:
http://www.perlfoundation.org/perl6/index.cgi?perl_6_articles_and_presentations
The Parrot VM for dynamic languages (to be used by Rakudo/Perl 6) also has an official wiki:
http://www.perlfoundation.org/parrot/index.cgi?parrot
Parrot is multi-lingual, so Perl 6 will be able to call modules written in other Parrot languages, and other Parrot languages will be able to call Perl 6 modules compiled to Parrot.
Unlike Perl 5, which is defined by its reference implementation, Perl 6 is defined by its test suite. So there will eventually be other versions of Perl 6 that don't run on the Parrot VM.
Perl 5 is still evolving. Perl 5.10 was a major recent release, which (among many other improvements) also had a few Perl 6 related features. Perl 5.12 is under active development (as Perl 5.11).
Perl 5.12 will have support for calling (and for being called by) Perl 6. Perl 6 should be able to compile the great majority of Perl 5 code -- this is a major priority.
Please see the Official Perl 5 Wiki to find the latest information:
To the comment that it didn't start until 2005... I suppose it depends on if you count Parrot as Perl6. The original team did, but we didn't get buy in from the "Perl6 Language" folks for years.
We were doing real work on Parrot in 2000-2004 and much of the VM groundwork was there. By 2002 we had continuations, co-routines, a JIT, an intermediate compiler and a dozen languages besides Perl6, including a BASIC interpreter written in Parrot's PIR. By then we could compile and run pretty much any sort of language in the world, short of highly concurrent languages, and our capability far exceeded the needs of Perl6 for an implementation platform.
The VM itself has been capable for years. Perl6 as a language is a different story since it is a very complex beast to parse. That has no reflection on Parrot. It is simply a reflection on the culture of Perl and it is why the rise of other scripting languages has accelerated and Perl5 is in decline and people who once chose Perl5 for new systems implementation moved to Ruby, Python and Groovy, and languages like Java and C# evolved frameworks that make a heavy use of reflection for runtime dispatching.
As much as I love Perl, if a language is so difficult to implement that a production quality compiler cannot be written in less than a decade, something is wrong! C++ is easier to parse and was implemented in a fraction of the time of Per6. That should tell us something. Derek Jones writes in his blog "The Shape of Code" that C++ may have gotten "Too Big to Fail" (http://shape-of-code.coding-guidelines.com/2008/12/c-goes-for-too-big-to-fail/). C++ can afford to do that since it got successful first before it got big. Perl6 may be "Too Big to ever Succeed" because the scope was so grandiose that the project has trouble retaining contributors due to the fact that the attention span of the typical contributor is probably 2-3 years, not 10.