Last week the folks at PHP.net announced that support for PHP 4 would end at the end of 2007:
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.
In parallel, a group of developers working on open source PHP projects have created GoPHP5, a site and community of projects all of which have agreed to drive PHP5 adoption. In order to be listed on the site, the project must:
Make an announcement on your site that by February 5, 2008 you will accept PHP 5.2 features into your codebase and will no longer provide support for lesser PHP versions. (versions or branches of your software already released by that date may continue support for older versions; this resolution applies only to new development.)
The idea is that unless a certain critical mass of key projects begins to require PHP 5, most shared web hosts won’t upgrade the version of PHP they make available to their users. Because the web hosts still run PHP 4, the developers of PHP projects still have to support PHP 4 – but so long as the developers continue to support PHP 4 there is no incentive for the hosting providers to upgrade:
It is a dangerous cycle, and one that needs to be broken. The PHP developer community has decided that it is indeed now time to move forward, together. Therefore, the listed software projects have all agreed that effective February 5th, 2008, any new feature releases will have a minimum version requirement of at least PHP 5.2.0. Furthermore, the listed web hosts have agreed that effective February 5th, 2008, they will include PHP 5.2 (or a more recent version) in their service offer.
WordPress, however, is not (and will not be) one of the projects on this particular PHP bandwagon. Ticket #4591 has been marked closed, wontfix:
This has been brought up probably half a dozen times, and our position is the same.
* PHP5 does not yet have sufficient penetration. On many hosts where it is available, it is not the default.
* We’re not going to turn WordPress into a protest piece at the expense of our users.
* We’re not going to set a date for the end of PHP4 support when there is no evidence to suggest that the hosting landscape will be any different on that date.
Matt Mullenweg also weighed in on the issue on his blog, arguing that:
Now the PHP core team seems to have decided that the boost their failing product needs is to kill off their successful one instead of asking the hard questions: What was it that made PHP 4 so successful? What are we doing to emphasize those strengths? Why wasnÃ¢â‚¬â„¢t PHP 5 compelling to that same audience? Are the things weÃ¢â‚¬â„¢re doing in PHP 6 crucial to our core audience or simply Ã¢â‚¬Å“goodÃ¢â‚¬Â language problems to solve? Will they drive adoption? How can we avoid releasing (another) PCjr?
(Tell us how you really feel, Matt.)
While I can understand the desire of the GoPHP5 folks to encourage web hosts to make available new language features, I have to say ultimately Matt’s right on this one. Explicitly choosing not to provide support to a group of users in order to force adoption of a new version is putting the cart (developer interests) before the horse (user needs).
That said, how can the PHP community get PHP5 more broadly deployed? (And deployed as the default at hosts which need to provide support for both 4 and 5, which will be the case at many shared hosts)? What do you do when the older version is successful people don’t see a good reason to migrate to the newer version?
I remember the bad old days of Netscape Navigator 4.x, and how terribly long it took for the number of users on NN 4.x to reach a low enough level that they could be “unsupported” from a web development point of view. Ajax would never have taken off so widely as a technique had it not been so easy to talk about supporting “All major browsers, 5.x or later” – dropping the old Netscape stack and supporting only Mozilla based browsers (and that MS thing). But that happened more or less accidentally – no one continued to develop NN 4.x as the company failed, and new and more compelling options (Firefox, Safari, Opera) appeared.
How do we get beyond PHP4 without leaving users behind?
More generally, how do you crank the adoption cycle to move faster, without forcing end-of-life?
Ubuntu‘s LTS releases “will be supported with security updates for 5 years on the server and 3 years on the desktop” – part of a deliberate strategy to reduce user’s risk of obsolescence and increase adoption of Linux. But PHP5 is already three years old – PHP4 was launched in May of 2000!
(Update: Just coincidentally came across this: 4 Years Ago Today – Netscape Corporation Killed, Mozilla Foundation Born. – I thought netscape’s death was even longer ago than 4 years. How quickly time flies).