Perl FAQ 1.6: When will Perl stabilize?

Perl FAQ 1.6

When will Perl stabilize?

When asked at what point the Perl code would be frozen, Larry answered:
Part of the redesign of Perl is to allow us to more or less freeze the language itself. It won't totally freeze, of course, but I think the rate of change of the core of the language is asymptotically approaching 0. In fact, as time goes on, now that we have an official extension mechanism, some of the things that are currently in the core of the language may move out (transparently) as extensions. This has already happened to dbmopen().

I've also been continuously reminding myself of what Henry Spencer calls ``second system syndrome'', in which everything under the sun gets added, resulting in a colossal kludge, like OS 360. You'll find that the new features in Perl 5 are all pretty minimalistic. The object-oriented features in particular added only one new piece of syntax, a C++-style method call.

The whole idea behind Perl is to be a fast text-processing, system-maintenance, zero-startup time language. If it gets to be so large and complicated that it isn't fast-running and easy to use, it won't be to anyone's benefit.
My motto from the start has been, ``If it ain't broke, don't fix it.'' I've been trying very hard not to remove those features from Perl that make it what it is. At the same time, a lot of streamlining has gone into the syntax. The new yacc file is about half the size of the old one, and the number of official reserved words has been cut by 2/3. All built-in functions have been unified (dualified?) as either list operators or unary operators.
I really like a lot of the features in Perl, but in order for Perl to be useful on a long term basis, those features have to stay put. I bought the Camel book less than a year ago and it sounds like within another year it will be obsolete.
The parts of Perl that the Camel book covers have not changed all that much. Most old scripts still run. Many scripts from Perl version 1.0 still run. We'll certainly be revising the Camel, but the new man pages are split up such that it's pretty easy to ferret out the new info when you want it.

We did break a few misfeatures in going to Perl 5. It seemed like the first and last chance to do so. There's a list of the incompatibilities in the documentation.

Not only is it a lot of work to recompile Perl on 20+ machines periodically, but it's hard to write scripts that are useful in the long term if the guts of the language keep changing. (And if I keep having to buy new books. I keep hearing about new features of Perl 5 that aren't documented in any of the perl 5 documentation that I can find.)
I think you'll find a lot of folks who think that 4.036 has been a pretty stable platform.

Perl 5 is a special case. I've been working on it for years. (This is part of the reason 4.036 has been so stable!) There are many changes, most of them for the better, I hope. I don't expect the transition to be without pain. But that's why I stuck numbered versions out in your bin directory, so that you can upgrade piecemeal if you like. And that's why I made the -w switch warn about many of the incompatibilities.

And overriding all that, I've tried to keep it so that you don't have to know much about the new stuff to use the old stuff. You can upgrade your knowledge piecemeal too.

The extension mechanism is designed to take over most of the evolutionary role from now on. And it's set up so that, if you don't have a particular extension, you know it right up at the front.

Are there any plans to write a Perl compiler? While interpreted Perl is great for many applications, it would also be cool to be able to precompile many scripts. (Yes, I know you can undump things, but undump isn't provided with Perl and I haven't found a copy.) The creation of a perl library and dynamically-loadable modules seems like a step in that direction.
Yes, part of the design of Perl 5 was to make it possible to write a compiler for it. It could even be done as an extension module, I suppose. Anyone looking for a master's thesis topic?

In summary, almost every concern that you might think of has already been (at least) thought about. In a perfect world, every concern could be addressed perfectly. But in this world we just have to slog through.


Other resources at this site: