This post originated from an RSS feed registered with Perl Buzz
by Andy Lester.
Original Post: The future of Perl 5
Feed Title: Perlbuzz
Feed URL: http://perlbuzz.com/atom.xml
Feed Description: What's happening in the world of Perl programming, including Perl 5, Perl 6, the CPAN and Parrot?
Jesse Vincent, the pumpking for Perl 5, gave a talk at OSCON called
"Perl
5.16 and beyond" where he lays out the future of Perl 5. The
slides
are up on slideshare, and they're well worth reading. I haven't
read perl5-porters,
the Perl 5 maintainers' mailing list, in a few years, and Jesse's
slides are an eye-opener to the trials and tribulations of keeping
Perl 5 usable in legacy situations but moving forward with new
innovations.
The pumpking is sort of the project leader for Perl 5, and arbiter
of what gets committed into the source tree. The pumpking also
used to be the person who created the releases, but as Jesse points
out below, this responsibility has been delegated to others. The
term "pumpking" comes from the holder of the patch
pumpkin.
Key points from the slides:
Perl 5 is now on a regular release schedule, where releases
are made based on the calendar, not some critical mass of
changes.
The dual track of odd numbers (5.13.x) for development releases
and even numbers (5.14.x) for production releases continues.
Although Perl 5.14.1
is current production, 5.12.4 and
5.15.0
have recently been released as well.
Releases used to take three weeks for a single pumpking to do.
Now it's a documented process that takes only a few hours.
Releases are done by rotating volunteer release engineers. Per
Larry, the time of hero pumpkings is over.
As Perl 5 changes much more quickly, we need to be able to
recover from mistakes. Perl should have sane defaults. Perl
5 should run everywhere: Every OS, every browser, every phone.
Forward changes should not break older code. Programmers
shouldn't have to build defensive code to protect against future
changes to Perl 5.
The Perl runtime needs to slim down. Old modules are getting
yanked from core and moved to CPAN. Not deprecating, but
decoupling. We need to release a version of the Perl core that
contains all the stuff we've yanked out of the "slim" core
distribution.
The test suite needs to be split into three types of tests:
language, bug-fix and implementation.
Jesse wants saner defaults in the future, to make Perl 5 cleaner,
simpler and easier to work with:
warnings on
autodie-esque behavior
throwing exceptions rather than returning on failure
I couldn't attend Jesse's talk because I was speaking about community
and project management with Github in the same time slot, so
if video exists I'd love to see it. And thanks very much to Jesse
and the rest of p5p for keeping Perl 5 so amazing.