Larry Wall and other active Perl porters and Perl helpers met on Tuesday afternoon at Perl Conference 4.0 and mapped out a what is planned to become a complete rewrite of Perl that will become Perl 6 in 18 to 24 months, with a prerelease targeted for next year's conference.
Perl 5 will not be abandoned, but will primarily be concerned with bugfixes both major and minor.
The meeting for members of the perl5-porters mailing list was the result of an earlier, smaller meeting of Wall, Nathan Torkington, Chip Salzenberg, and others who basically decided that Perl needed to be fixed in certain ways, and that a rewrite was the best way to do it. Salzenberg started the Topaz project two years ago, to reimplement Perl in C++. Though Topaz itself will not be the basis for Perl 6, Salzenberg noted that the lessons learned in the experience will be very helpful to the new effort.
Torkington led the three-hour meeting, starting off by saying what was wrong with Perl. Much of the focus on the problems with Perl centered around how increasingly difficult it was to improve, extend, and embed Perl. A rewrite and redesign are needed, he said, and maybe it is time for a hard change. So while the focus of the effort seems to be on improving the Perl guts and API, the project will also be used as an opportunity to clean out some of the cruft, including bad and seldom-used features.
Some of the primary (and still vague) goals of the effort will be to reimplement the core so it is better, stronger, and faster; improve syntax; add new features where appropriate; have better version and installation management for perl and its modules; and have a clear and automated migration path, which may include a backward compatibility mode. Some old features may be removed, like typeglobs. Others will be improved.
The group hopes to re-shape Perl community, too. Instead of one all-encompassing perl5-porters list, tightly focused mailing lists with a terminal lifespan will be formed. To start off, the mailing list bootstrap at perl.org will be for discussion of the beginnings of the project. Like most, if not all, other new lists, when it has fulfilled its purpose, it will be closed.
Wall said, "Perl 5 was my rewrite of perl
Specifics have not yet been ironed out. A group has been formed to begin the work, which will primarily consist of planning the work to be done. No coding is to be done at this stage, only planning and support. Roles were determined for the group, and then they were filled. They now include the perl 5 maintainer (Jarkko Hietaniemi and Nick Ing-Simmons), the language design pumpking (Larry Wall), the internals design pumpking (Dan Sugalski), the documentation manager (Adam Turoff), the system administrator (Ask Bjoern Hansen), the quality assurance bloke (Michael Schwern), the spokesdroid (brian d foy), the customer relations person (Dick Hardt), and the project manager himself, Nathan Torkington. Other porters, such as Chip Salzenberg, volunteered to consult when needed.
Some of the short term goals of this group are to draft a language specification, start an RFC channel, get feedback, and set up mailing lists, a documentation repository, and a web site. Hansen will be setting up the mailing lists. The bootstrap list will be open to the public, while the list for the intial small group of people will be closed for posting by anyone not on the list. All lists will be readable by the public, through the web, and perhaps through email. Turoff is going to be preparing the notes for the morning meeting, and foy will be posting the notes and the mailing list links on the www.perl.org web site.
Larry's power as Supreme Court is expressed in The Rules:
1 Larry is always by definition right about how Perl should behave. This means he has final veto power on the core functionality.
2 Larry is allowed to change his mind about any matter at a later date, regardless of whether he previously invoked Rule 1.
Got that? Larry is always right, even when he was wrong.
Ah, the moment many people have been waiting for...the chance to advance their own modest
proposals for re-syntaxing perl. Gosh, I've been hatching those since 1991 or so.
I'll spare you my own ideas, but I think anybody interested in this project should look at Damian Conway's spectacular efforts to save C++ from its own syntax, namely A modest proposal: C++ Resyntaxed (postscript) . Since Conway is something of a perl insider, I'm kind of hoping he'll have a hand in this aspect of Perl 6.
One other beautiful paper for anybody proposing to (re)design a language would be Guy Steele's Growing a Language paper (available in bothpostscript and PDF formats. I know that people like Guy Steele are probably the indirect targets of some of Larry Wall's barbs about language design, but I think his experience (and wit) are ignored at your peril.
I consider myself to be still very much in the big Perl picture.However, I'd also like to enjoy a brief "sabbatical" after three years in the hot-seat, if that is at all possible. I've always wanted to scratch the itch of doing cool things _with_ Perl rather than _to_ perl. I'm still hoping this may be the best time to start scratching.
:-)
I remember when Larry Wall used to write on comp.lang.perl about what he was working on for perl5. And yes, he said many times that there shouldn't (not wouldn't) need to be a perl 6 if perl 5 became what he thought it should. That the rewrite of the core was more modular, etc. and so the language could be extended through modules and XS rather than having to rewrite the interpreter.
Now for some software projects, a 6 year lifetime is a remarkable feat. But for something that was supposed to be designed to avoid having a "shelf-life", it seems that something had to go wrong somewhere. It seems that perl5 only had the lifespan of perl3 and perl4.