Perl 6 To Be Complete Rewrite (But Not What You Think)

pudge on 2000-07-19T18:56:01

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 ... I think this should be the community's rewrite of perl, and the community's rewrite of the community."

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.


Perl 6

brian_d_foy on 2000-07-19T19:41:46

As inforamtion becomes available, I will put it up at the blessed Perl 6 information source.

No C++ ?

Alex Farber on 2000-07-19T19:54:32

So it won't be C++ ?

Regards Alex

Re:No C++ ?

ask on 2000-07-19T20:38:46

Like most other things that is not decided yet.

  - ask

Whither Sarathy?

gaudior on 2000-07-19T20:53:26

Why is he missing from the initial list of porters?

Re:No C++ ?

pudge on 2000-07-19T21:02:48

It is not decided, but I cannot imagine it will be C++. I think too many people would rather have C.

Re:Whither Sarathy?

pudge on 2000-07-19T21:03:02

What initial list of porters? There isn't one.

Re:Whither Sarathy?

brian_d_foy on 2000-07-20T02:38:35

There is a first list of volunteers on www.perl.org. At this time, Sarathy has not volunteered for a particular role in Perl 6, but has not commented on why.

Everything is still in the early stages of organization, so you should not infer anything from omissions.

Re:Whither Sarathy?

gaudior on 2000-07-20T13:05:13

No inferences were intended.
I have been a lurker on p5p on and off for years. Sarathy's contribution to the current state of Perl is deep and wide. I hope he has the time and willingness to contribute to the re-write, given his experience.

perl 6?!?!

akira on 2000-07-20T13:59:25

Please... correct me if I'm wrong, but didn't Larry Wall state that there wasn't going to be a perl 6? That the numbering would continue past 5.9 to 5.10 ...etc...

Re:perl 6?!?!

pudge on 2000-07-20T15:43:33

Larry might have said that, I don't recall. He did say that there may never be a need for it, but that was assuming the perl internals were sufficient to make Perl extensible and embeddable. That assumption appears to be widely questioned now.

Re:perl 6?!?!

sdirector on 2000-07-20T15:56:25

Don't forget -- perldoc perlhack


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.

Desirable feature ...

LizardKing on 2000-07-20T16:06:10

I hope that the rewrite works out - it's not everyday that something as widely used as Perl is redone from scratch. I'm also hoping that the internals will be reworked with an eye to producing executables from Perl code - or allowing Perl to [insert-fave-language] translators to be plugged in to the backend.

Re:No C++ ?

ask on 2000-07-20T19:02:32

Yes, I agree.

But my point was that the whole idea is to remove all assumptions, start from a blank page and get the best possibly language and implementation out of it - so by princip we don't know yet. :-)

  - ask

Re:No C++ ?

jules on 2000-07-20T21:47:04

Why not write perl in perl?

Perl 6 observations

jking on 2000-07-20T21:54:25

So they're really writing Perl 6?

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.

Re:Whither Sarathy?

ziggy on 2000-07-20T22:01:41

I forwarded this question to Sarathy. Here's his response.
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. :-)

Re:perl 6?!?!

-wUT on 2000-07-21T01:36:52

He also said that Perl was finished because it's out of characters for special variables. He has always had the right to be wrong and the right to what's wrong. See the Artistic License....

No Perl in Perl

chip on 2000-07-21T19:43:12

Because Perl is an applications language, but the Perl implementation is a systems programming job.

Re:No Perl in Perl

jprit on 2000-07-21T20:15:32

Granted, but what about using perl as a C*
code generator instead of writing C+ by hand?
(Also see my posts on the bootstrap list.)

Re:No Perl in Perl

chip on 2000-07-21T20:41:21

Generating C from Perl is like generating C++ from Smalltalk. The impedance mismatch between VM models is too great for effectiveness. IMO, of course.

Re:perl internals, what went wrong

Andrew Langmead on 2000-07-22T20:37:37

What went wrong with the design of the perl 5 internals, or maybe the question is, what went wrong with the maintainance of the internals 5.000.

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.