Part of the EllisLab Network

Blog & News

Derek Jones
Chief Technology Officer, EllisLab, Inc.

I See Dead Server-Side Scripting Languages

PHP 4 was discovered to be terminally ill on July 13th, 2007, when the doctors made the announcement that it had only until the end of the year to live.  They were confident that it would remain vital until December 31, 2007 (when support would officially be withdrawn), at which point it would be comatose, lifeless, only able to receive pain management (security fixes as needed) until 4 days ago, when PHP 4 fully expired.  However, like Shyamalan’s Crowe, PHP 4 has no awareness that any of this has taken place, nor that it is dead.  Likewise, neither do most server vendors or hosts.

In its last month of life, after it had already ran out its usefulness, it was still powering just under 60% of the PHP market, with big brother PHP 5 only holding slightly over 40%.  Exactly one year prior, the split was 80/20.  Here we are, 8 months after PHP 4’s creators declared it dead, four years into the release of PHP 5.  Four years old, and over a year after the previous version was given a public execution, PHP 5 still only has 40% market penetration.

Do I wish these statistics were different?  Yes.  Do I think ExpressionEngine and CodeIgniter would benefit from being written as PHP 5 only?  A little.  It would certainly make our lives as developers easier, even though the difference to the end user would be unnoticeable.  Would I rather write PHP 5 only code than PHP 4?  You betcha.  Is there a chance in the world that we are going to narrow our market by 60% in order to do so?  No, nada, zip.

Think of it this way.  There are two shopping malls, made by the same land developer: one old, one new.  The new one is flashy, has wider corridors and a better food court.  The old one had become a burden to maintain and the land developers were hoping that all of the retailers will move into the new mall and stop leasing space in the old mall so they could raze it and be free of the responsibility.  When the land developers built this new mall, did the old mall suddenly lose traffic?  Do the retailers and customers suddenly stop shopping at the busy well-established mall?  Of course not.  In fact, the new mall will be slow to fill with new retailers (and therefore shoppers) because the established businesses at the other mall still sell products just fine.  It has served people’s needs for so long, that there’s no perceived need to go shop at the less-populated mall right away.  Smart retailers see the advantages, though, and are in both malls.  To keep shopper confidence high, they wisely keep the store format and products identical and familiar to the store in the old mall.

That’s us.  We’re the smart retailer, with stores in both malls.  ExpressionEngine and CodeIgniter work fine in both PHP 4 and PHP 5.  The resources it takes to maintain a unified store front in both malls is far less than it would be to maintain two completely separate entities.  And the store at the “old” mall is the primary source of our revenue, so it would be incredibly foolish to close the doors just because the land developer stamps his feet.

As developers, we like to think that our decisions can set the stage for what platform and architecture our clients will want to use, and by extension, what hosts will offer our clients.  The list of failed products and companies who have tried to shape the market by trying to set a standard before the market was ready for it, or even regardless of whether or not the market wanted it, is long indeed.  We’d rather not join that list, so it looks like ExpressionEngine and CodeIgniter will remain compatible with PHP 4 for quite some time still.