The Perl programming language is experiencing something of a development renaissance. On April 12, Perl version 5.12 was released to the general public, marking the second major update in less than a year.
Perhaps the most interesting aspect to Perl 5.12 is that there was a release at all. For the past eight years, Perl 6.0 has been the focus of much of the Perl community, so much so that the project had to be split into separate runtime and language efforts. The Perl 6.0 language effort has included hundreds of syntax and behavior changes, while the runtime project was spun off as Parrot, an open-source dynamic language runtime.
Jeff Hobbs, director of engineering at ActiveState, said that 6.0 stole a lot of the thunder from the mainline Perl project. “There was a lot of navel-gazing in the last few years, where everyone was thinking 6 is around the corner. It’s been around the corner for so many years, there’s not been a lot of work done in the 5 branch,” he said.
“Why Perl 6 is delayed is a separate and longer discussion, but basically, Parrot has mentally split the community.”
Hobbs said the person most directly responsible for getting Perl 5.x back on track is Jesse Vincent, founder and president of Best Practical Solutions. He took over the releases in 2009, when he decreed that the Perl 5.x line should be on a yearly schedule.
And Vincent seems to have followed up on his promise. The new schedule dictates that there will be a point release to fix update problems in 5.12 later this month. Perl 5.13 should arrive next spring, and development snapshots of that release will be released every month until then.
“Perl 5.12.0 represents approximately two years of development since version 5.10.0 and contains over 750,000 lines of changes across over 3,000 files from over 200 authors and committers,” wrote Vincent in an e-mail announcing the release of Perl 5.12.
Still, despite the length of time between releases, version 5.12 is still just a maintenance release. Many of the fixes included in it are focused on proper handling of Unicode. Version 5.12 updates support to Unicode standard 5.2.
One significant change, at least from a philosophical perspective, is the rectification of the 2038 bug. Unix-based systems have long had this issue, similar to the millennium bug, where their calendars would reset to 0 if they encountered the year 2038 or beyond in a program. Perl 5.12 fixes this problem, and should be usable well beyond that date.
“You don’t have the 2038 problem anymore,” said Hobbs. “That’s really important with things in the finance industry, where they write contracts that can be 20 or 30 years long. They were using 64-bit Perl to get away from this issue, but now 32-bit Perl won’t have this issue.”
Version 5.12 does not solve all the problems in the 5.x branch, Hobbs acknowledged, citing the continued need for modules for handling certain Unicode Windows file names. “We’re not seeing this as a major breakthrough on the feature efforts,” he said.
But then again, perhaps the more significant change of all is of the Perl community itself. “We’re mostly interested in seeing renewed interest in the Perl 5 branch, and a dedication to keeping clockwork releases,” he said.