This is an old revision of the document!
PHP RFC: Name of Next Release of PHP
There has been some debate over what the name of the next major release of PHP, to succeed the PHP 5.x series, should be called. This RFC is an attempt to settle the matter once and for all.
This RFC proposes that the next major version of PHP shall be named either PHP 6 or PHP 7, based on the outcome of this vote. In the following arguments for both sides are presented.
The reason why this question even comes up, is that there has been a previous attempt at a new major version, which was started in 2005 and abandoned in 2010 due to difficulties in the Unicode implementation. Apart from language-integrated Unicode support, most features added for that version were integrated either in PHP 5.3 or PHP 5.4.
This previous attempt at a new major version was also developed under the name of PHP 6 and as such there are various resources referring to it, including a number of books. There is concern that there might be confusion between the abandoned previous attempt and the work that is currently happening.
The Case for PHP 7
The case for choosing 7 as the next major version for PHP is comprised from 2 key elements - there are no good reasons not to do it, and several good reasons to do it.
No good reasons NOT to skip version 6
Regarding the first element, it seems that many people are concerned that if we skip a version, we somehow cause confusion or break away from our versioning scheme.
The main confusion point cited by proponents of 'PHP 6' was that people will wonder 'how come we suddenly have PHP 7 and without having PHP 6?' - however, this is really much more of a trivia question than a cause for confusion. For obvious reasons, it will be clear that 7 is the latest version and even if there is 6 out there, 7 is newer and better.
We also wouldn't be breaking away or even changing our current versioning scheme. We're only skipping a version, while keeping everything about our versioning scheme intact.
Strong reasons of why we actually should skip version 6 into 7
There are several reasons of why we shouldn't reuse version 6 for the next major version of PHP.
- First and foremost, PHP 6 already existed and it was something completely different. The decimal system (or more accurately the infinite supply of numbers we have) makes it easy for us to skip a version, with plenty more left for future versions to come.
- While it's true that the other PHP 6 never reached General Availability, it was still a very widely published and well-known project conducted by php.net that will share absolutely nothing with the version that is under discussion now. Anybody who knew what PHP 6 is (and there are many) will have a strong misconception in his or her mind as to the contents and features of this new upcoming version (essentially, that it's all about Unicode).
- PHP 6, the original PHP 6, has been discussed in detail in many PHP conferences. It was taught to users as a done-deal, including detailed explanations about features and behavior (by php.net developers, not 'evil' book authors).
- There's lots of PHP 6 information, about the original PHP 6, that exists around the web. Books are the smallest part of the problem.
- Unlike the 'trivia question' of 'why did we skip into 7?', reusing version 6 is likely to call real confusion in people's minds, with ample information on two completely different versions with entirely different feature sets that have the exact same name.
To summarize, PHP 6 is a living memory in the minds of many developers - internals and PHP community alike; Reusing it will cause unnecessary confusion while gaining nothing.
Other than having good reasons to skip 6 and no reasons not to, there are also some minor reasons of why PHP 7 is actually a nicer choice:
- Skipping versions isn't unprecedented or uncommon in both open source projects and commercial products. MariaDB, jumped all the way up to version 10.0 to avoid confusion. Java jumped from version 1.4 to version 5.0.
- 7 is perceived as a lucky number in both the Western world and Chinese culture. A little bit of luck never hurt anybody. http://en.wikipedia.org/wiki/Numbers_in_Chinese_culture
- Version 6 is generally associated with failure in the world of dynamic languages. PHP 6 was a failure; Perl 6 was a failure. It's actually associated with failure also outside the dynamic language world - MySQL 6 also existed but never released.
The Case for PHP 6
The case for PHP 6 mostly comes down to why we shouldn't go for another name, rather than a case for it specifically. PHP 6 is the most obvious name choice as it follows the existing numbering scheme. Do we really need to break from it?
The main argument against this is that there was previously a project, which was abandoned in 2010, also called PHP 6. There have been many discussions about it in the past and some books and articles dealing with it exist, and this could cause confusion. Essentially, we would be naming a new version with the same name as a previous, but never properly released and abandoned version. A little looking at Amazon reveals that some of these “PHP 6” books do not actually cover PHP 6 at all, and many of the books are of poor quality. Furthermore, I expect that we could easily clarify if necessary that this PHP 6 was not the subject of those books, and I think that much would be obvious to users given that the new PHP 6 would be released in 2015 at the very earliest, more than 5 years after all existing “PHP 6” books would have been published.
In past discussions, “PHP 7” has also been suggested as a name, to make it clear that this new version of PHP is unrelated to the old “PHP 6”. However, it has been argued that it would not reduce confusion (people would wonder why the version 6 was skipped), and that people who would be likely to fall for “PHP 6” books might look for PHP 7 books, be unable to find them, and end up buying the old “PHP 6” books as they would seem, by the version number, to be the most up-to-date. While it could be argued that “PHP 7” is breaking with the numbering scheme by “skipping” a version, it could also be argued that it isn't, as PHP 6, even if it was never properly released, was a real version in development.
Another point that has been made is that due to online reviews, it would quickly become clear that these old “PHP 6” books do not cover the new PHP 6; people would likely try them, find the code in the book did not work, and rate the book “1 star”, deterring other customers. Furthermore, the PHP community would likely try to dissuade people from buying these old “PHP 6” books. Some also question how many of the old “PHP 6” books are still in print, for that matter.
A 50%+1 (simple majority) vote with two options, “PHP 6” and “PHP 7”, is proposed. If more votes are for PHP 6, that shall be the name of the next major release of PHP. Otherwise, if more of votes are for PHP 7, that shall be its name.
Voting started 2014-07-20 but was cancelled.