Goodnight, Perl 5.005

by chromatic

Michael Schwern, Perl clown and maintainer of ExtUtils::MakeMaker and Test::Simple has announced that MakeMaker and Test::Simple will no longer support Perl 5.005. This is extremely significant because those two distributions are important pieces of Perl's upgrade infrastructure.

Perl 5.005 is nine years old, and its stable successor Perl 5.6 is seven and a half years old. From Schwern's message:

Finally, I'm coming around to chromatic's philosophy: why are we [worrying] about the effect of upgrades on users who don't upgrade? Alan Burlson's comments about Solaris vs Linux are telling: if you're worried more about supporting your existing users then finding new ones, you're dead.

My argument has always been very simple. There have been nearly a dozen stable releases of Perl since the release of Perl 5.005 in 1998. Anyone still running code that old obviously is not interested in upgrading to modern, supported versions of Perl. That's the one conclusion you can draw about them. Thus, it doesn't make sense to write new versions of Perl libraries and applications for them because they don't upgrade their software.

My personal oldest supported version is Perl 5.6.2, released just over four years ago, but with Perl 5.10 coming in the next month or so, I might drop official support for anything older than Perl 5.8.1 (which, amusingly enough, is a couple of months older than Perl 5.6.2).

I'm all for software stability, and I'm glad that Perl 5.005 is a high-quality product that's still viable almost a decade after its release, but we have fixed a few bugs and added a few nice features in the intervening years. I'd like to take advantage of some of that new code sometime. Kudos to Schwern for seeing the light.


2007-11-20 22:06:09
Imagine you need to work on a legacy Irix system (they're still out there, working and making money in some industries). Without installing a separate freeware perl distribution and all it's associated dependencies, the installed perl is 5.004.

I have to maintain an increasingly large parallel setup of many installed packages for many more reasons than to have Makmaker work, and I totally understand the reasoning to stop supporting old versions. But understand that it's not a reluctance to upgrade that holds some people back.

2007-11-20 22:16:53
@Ciaran, I've used legacy Irix (I remember compressing manpages to save disk space because I didn't want to pony up $500 for another 2 GB back in 1999).

I'm of the opinion that if your vendor's packages depend on an ancient version of any software, it's your vendor's responsibility to support that software. In this case, installing a separate (modern) Perl really is your best option. You're not getting security or bug fixes for anything older than 5.8.x, for example, and I've never heard of SGI or Sun or other Unix vendors backporting fixes to ancient Perls.

2007-12-16 15:00:44
@Ciaran, while I feel your pain, and have been in similarly messed up "won't upgrade" situations, I do not feel it enough to spend my time and effort to support them for free. If you want 5.004 support you can patch it or pay for it, I am available for hire.

There's another side. I do not wish to *encourage* people to use ancient versions of Perl any more. I will no longer enable your organization's bad habit. Allow me to explain.

When I encounter ancient perls often there is a desire to upgrade but there is no "business case" to allocate the time to upgrade and deal with the resulting compatibility issues. For example, let's say you had to do a lot of Unicode work, that would be a good reason to upgrade perl to 5.8 which does Unicode well. By dropping 5.005 support I have just given you a business case for upgrading. You're going to have to spend more and more time patching recalcitrant CPAN modules (which you probably do already) or you're going to spend a lot of company time reinventing lots of freely available wheels on CPAN. Once you place your time spent supporting your 5.004 habit, translate it into money spent paying you for that time, you can now make a case for upgrading or changing whatever silly policy is keeping you from upgrading.

And honestly if you're at a place that drags their feet on upgrades you're got much bigger issues to deal with. You've got some social bugs to work out, and they cannot be fixed with technology.