PHP 5.4, major/minor upgrades, backwards compatibility and the dependency spiral
Yesterday I wrote about PHP 5.4, and possible turns for future major versions for Doctrine and Symfony. That post got quite some attention. This topic of releases, dependencies and backwards compatibility always seems to strike a nerve.
But as things move forward how can there be such a thing as release stability?
First of all I think it’s important to remind oneself that progress is something positive.
Who can honestly argue against PHPs feature such as namespaces which came with 5.3 or proper OO that came earlier with the 5.0 branch?
Even today many developers seem keen to get their hands on traits with 5.4 and who could blame them?
PHP 5.4 – as I learned from Benjamin yesterday – is expected to be released in about half a year. That would be about 2 1/2 years after the release of 5.3!
It would seem only natural that frameworks, libraries and other things written in PHP would eventually move to this new version. Otherwise what’s the point of progress.
But what if that forces their users to upgrade when they may not be able to? Just think about hosting companies who have to carefully upgrade whole infrastructures or big companies that host many websites. As far as I know PHP 5.4 won’t be breaking BC so an upgrade should be easy and safe but for any big company change is also a risk best avoided until the technological benefit ourruns the disadvantages of outdating.
I expect that the major PHP projects will start experiments with the new PHP version and that they will leverage its potential as soon as possible in form of a new major or minor release that will be PHP 5.4 only.
I also expect that the current versions running on PHP 5.3 will be maintained further it can be assumed that the majority of users has access to 5.4.
Think back to symfony 1.4 which is still supported until next year (although not everybody seem to fully appreciate this..) !
Only staying with the then older versions will come with the tradeoff of not participating of improvements. But then what else is new?
Progress is not something that comes with no cost. Progress is always an investment. You have to move to keep up.