The Perl You Need to Know Part 25: Life Cycles -- A Series Ends, A New Perl Is Born - Page 172
June 18, 2001
|
Nearly a year since the announcement of Perl 6, we bring closure
to the Perl You Need to Know series with a look at where
Perl 6 is, how it's gotten there, and where it might be going.
|
Amidst fever, grime, sweat and toil, Perl is being reborn. Not
unlike Steve Austin, the Six Million Dollar Man, one might say
that Perl is becoming "better ... stronger ... faster", but
without the sound effects. It will, of course, remain free of
charge. In July 2000 it was announced that work on Perl 6 would
begin, with a timeline of approximately two years from conception
to implementation. Not content to simply glue more features onto
Perl 5 — the reigning king of scripting languages —
Perl 6 will be built from scratch, like grandma used to make.
The Inspiration
When the core group of Perl developer's read
PYNTK 22: Warts and All, they were understandably discouraged
and swore to go back to the drawing board and begin the language
again. In fact, this is not what happened at all. They probably
did not even read PYNTK 22, and probably never will. What
actually happened was that a guy at a Perl conference threw some
coffee mugs at the wall and cried that Perl developers had become
complacent and needed to shake things up. As Dave Barry would
say, "I'm not making this up." The solution: write a new Perl!
Perl 5 is clearly a successful language, insofar as one defines
"successful" as popular, functional, and in widespread use to
solve real problems. Nonetheless, even (or perhaps only) the best
housing contractor will admit that you can never build the ideal
house, and the second, third, or fifteenth time always yields new
insights. Perl 5 did grow warts, as its evolution over time
pushed it in directions it wasn't necessarily ready to go.
Evolution needn't always be elegant — look at the platypus.
The goals behind Perl 6 are both radical and yet logical.
Rewriting the language from scratch is radical, not to mention
time consuming. Redesigning and realigning language features into
a more cohesive whole — in tune with the needs of the
modern programmer while retaining and extending the Perl
philosophy and spirit — is logical.
The Development
The marvel of
building the Empire State Building was — beyond its
scale, height, or art deco design — the efficiency and
organization of the construction process. Built in only 14 months
at the rate of 4 1/2 stories per week, the builders, Starrett
Brothers & Eken, Inc., had to organize and mobilize a work
force of up to 3,400 laborers. Organizing a development effort is
the first and usually foremost challenge in bringing any idea off
the ground. Led by Larry Wall, original and lead architect of
Perl, development of Perl 6 began with a strong focus on the
process itself: How would its design be organized and coordinated
in a way that leverages the power of collaboration with the
efficiency of despotism?
One of the early stages of the Perl 6 development process was a
call for RFC (Request for Comment) submissions. There have
long been e-mail discussion lists where developers trade ideas.
But these are unorganized and informal thinking sessions, lacking
the formality necessary to draw actual blueprints from. The RFC
has a long history in Internet architecture, in which one or
several authors would formally propose a system or protocol. In
fact, many RFC's have become Internet standards, such as RFC 1725
(the POP3 e-mail protocol with which most of us receive our e-
mail), or RFC 1945 (the HTTP 1.0 protocol that allowed us to
begin surfing the Web).
An RFC is a somewhat structured document, with formal sections
that its author organizes and responds to. In requesting RFC's
from the Perl community, Larry Wall sought to create a semi-
formal pool of suggestions and desires, defended and sketched
out, from which to draw on an ultimate architecture. With over 350 RFC's submitted for Perl
6, the RFC process formed the primary collaborative aspect of
designing Perl 6.
Despotism, generally considered to be the benevolent kind, enters
in the form of Larry Wall. As lead Perl architect, his next move
was to consume and digest the RFC pool and, from it, find a way
to draw a blueprint for Perl 6. In doing so, he graded RFC's and
provided acceptance, revised acceptance, and rejection of the
various proposals, in a way that would hopefully lead to a
cohesive whole.
Larry Wall's decisions and prodigious commentary on each RFC are
being organized in parallel with the chapters of "the Camel,"
officially known as Programming Perl, because they provide
a reasoned framework for moving through the language. These
pronouncements are published under the title
Apocalypse,
by which he means the literal interpretation of "a revealing".
Unfortunately, the Apocalypse is a few months late — at
least, with respect to the original Perl 6 timeline. While
evaluating the RFC's was supposed to take a couple of weeks, it
in fact took five months, which will likely affect the two year
timeline from which Perl 6 was anticipated to be near release
status.
Contents:
Whither Perl 5?
Interpolation
A Matter of (Indirect) Syntax - Page 171
The Perl You Need to Know
Whither Perl 5? - Page 172
|