PHP 4 is going, going, gone

Submitted by Larry on 13 July 2007 - 1:23pm

What a week it's been! Eight days ago, we launched GoPHP5.org to try and break the stalemate that kept PHP 4 on past its sell-by date. At launch, we had a half-dozen projects and about 10 hosts that had signed up.

What a difference a week makes.

As I write this, we now stand at 36 participating projects from all over the spectrum. Numerous smaller projects jumped on board quickly, but the list also includes power-houses like Drupal, Symfony, Gallery, both phpMyAdmin and phpPgAdmin, and now even the grand-daddy of them all PEAR. By this time next year it will take more effort to find PHP 4 compatible projects than it will to just use a PHP 5-targeted one.

But that's OK, because there's no shortage of web hosts. 64 web hosts in 16 countries are now listed on the site as offering PHP 5.2 out of the box, and more come in every day. Plus, dozens more offer it as a non-default option (by request or via a .htaccess configuration directive), and many others offer PHP 5.1 but plan to upgrade to 5.2 eventually.

The rapid uptake from hosts makes me seriously question the oft-quoted Nexen stats, which are usually cited as justification that PHP 5 uptake is too small to justify dropping PHP 4 support. Given how incredibly easy it apparently is to find a PHP 5-compatible host, it just doesn't seem those figures are representative. We should have done this a long time ago. :-) When PHP 6 is released, we'll have to be careful how we define uptake to avoid a similar problem.

And, of course, there was this little announcement today from the PHP development team:

The PHP development team hereby announces that support for PHP 4 will continue until the end of this year only. After 2007-12-31 there will be no more releases of PHP 4.4. We will continue to make critical security fixes available on a case-by-case basis until 2008-08-08. Please use the rest of this year to make your application suitable to run on PHP 5.

Nick Lewis wonders if GoPHP5 had something to do with that. Not directly, but the discussion on the PHP-Internals mailing list about finally dropping PHP 4 did start the day after GoPHP5.org launched. Coincidence? Who cares? :-)

I want to thank every one of the projects that have signed up, especially those that signed on before the launch: Symfony, Typo3, phpMyAdmin, Drupal, Propel, and Doctrine. It was a risk, certainly, but the leaders of all of those projects were willing to take that risk to make their projects, and the rest of the PHP world, better for everyone. Thanks guys (and girls!).

It's not over yet, though. Involved projects, and those yet to sign up, still have upgrading to do. We also have a great deal of momentum built up. Is there something else we could do with it? What other inter-project cooperation could we get out of this effort? And how can we start planning, now, to make the PHP 6 transition in a few years smoother than the PHP 5 transition has been?

Let's start that dialog.

Was it necessarily a bad thing that adoption was slow? It means we can make 5.2 the minimum standard rather than 5.0. I think the market will only support one adoption per version at most and I'd prefer to be relying on a stable platform over the most feature rich one. The timing here feels spot-on to me.

Well, I suppose that depends on your definition of "slow" and "good". :-) Most web hosts, I imagine, would have a harder time going from 4.x to 5.x than 5.x to 5.x+1. Similarly, the number of hosts running PHP 4.2 and earlier is minimal, and once it came out 4.4 very quickly took over from 4.3. Despite complaints of the PHP dev team breaking things in Y-releases, Y release adoption doesn't seem to be that slow. So had the big shift happened in the 5.1 days, we would have been widely using PHP 5.1 for the past year or so already and migration to 5.2 from there would be, while not universal, at least not the "stare at each other and wait" problem that PHP 5 has been.

We'll see what PHP 6 looks like when it comes out. Hopefully it will be stable/bug-free faster than PHP 5 was, which will mean a shorter transition cycle.