The Neverending Muppet Debate of PHP 6 v PHP 7

Posted: 2014-07-23
Category: PHP

There are a few major, important conversations happening in the PHP internals mailing list as we speak:

There is also another conversation:

  • Should it be PHP 6 or PHP 7

Wait... what?

A little history

PHP 6 was attempted back in about 2010 and it ended up getting stuck in the mud. One of the largest changes that caused the troubles was that they tried to tackle Unicode support in the core of the language, then - as I remember it - kinda ditched out due to being unable to get the feature exactly right.

There is no doubt more to it than that, but the end result was that each feature slated for PHP 6 was back-ported into the 5.x branch, which is why we saw such a jump in awesome useful features for PHP 5.3.

The current argument

The question "Should we use PHP 6 as the name for the next version?" has been asked many times, but this time it is really taking off because the next major version of PHP is getting much closer. The timeframe of that is of course being discussed too, and bets currently range from 12 months to 3 years, but it is coming and it should probably have a name other than "PHP.next".

To try and answer once and for all whether it should be 6 or not, which seemed like a simple call. "Can we call it PHP 6" was the aim, but he was shouted down for not making a definitive "Make it PHP 6 or PHP 7" vote.

After some back and forth, and some bickering, and some squabbling, and one side deleting part of the argument from the others section of the RFC, we have a new vote on PHP 6 v PHP 7.

Arguments for PHP 7

Unfortunately, this whole conversation has been based around the mindset of: "If you cannot prove why PHP 6 is better than PHP 7, then we should use PHP 7."

I am totally down for letting whichever side piles up the most number of logical arguments to win, as that is pretty much how a discussion works. Sadly, it feels a little less like a discussion and more like a railroad of irrelevant arguments. One side has a lot of reasons, the other just has the one:

5 + 1 = 6

That is the strongest reason. Doing the logical thing should not be something that needs to be proved with 20 arguments from 20 different angles. But whatever, lets look at the pro-7 arguments in the RFC:

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.

The idea of PHP 6 actually existing ever is a weird one. I've worked in all sorts of open-source projects and often a release will be scheduled for one version, then end up being done differently.

I've made a 3.0 branch before, then decided it didn't warrant a major release at this point.

I've made a 3.2 branch before, then decided that it actually needed to be a major after a few more additions came in.

Things change.

The only releases that exist are those that are actually released.

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).

So, to my earlier point, "PHP 6 never reached General Availability." This mainly means that only "those in the know" really have any idea what PHP 6 is, and "those in the know" know enough to be fine with this lot having another crack at getting PHP 6 done.

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).

Oh the book argument. Kill me.

Some authors jumped the gun a little, and some publishers forced the authors to make the title PHP 6, because they wanted to be relevant for a long time.

The book argument for years has been the strongest "pro-7" argument, but it is not something I find to be even slightly valid. Most of those books are low quality, and they're all years old and irrelevant. Shit books exist now, and will always exist, but the way we know a book is shit is down to reviews.

One review on there saying "This book is outdated and nothing to do with PHP 6" and that book is shot.

The conference argument is also not particularly relevant, as again "those in the know" know better.

PHP 6 was widely known not only within the Internals community, but around the PHP community at large. It was a high profile project that many - if not most - PHP community members knew about.

I'd love to see a survey on this. My experience is that most developers have not got a clue that PHP 6 was ever even half a thing, and most drop a jaw when calling it PHP 7 is mentioned.

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.

Lots of old, shit, useless information.

  1. People know where to go to get their quality information, otherwise we'd all still be using mysql_connect() in our view files
  2. Responsible tutorial writes redact, or add a bit of errata
  3. In the world of a tech an article that is a few years old is hardly relevant anymore

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.

Ample is misleading. There are a few hits on Google about PHP 6 as a thing, but mostly its me and a few other people making of, or explaining, what did happen to 6.

As soon as we release PHP 6, there will be a lot of us writing blogs, books and talks about PHP 6. I'll make it my personal mission to dominate the homepage if you like, but I'm sure others will help me. NetTuts, Reddit, SitePoint, YouTube and the like will all have fresh content saying "PHP 6 is out! They tried a while back, but we got it now."

Assuming that 4 year old content will ever somehow outweigh the sheer force of an actual new release is truly absurd.

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, Netscape Communicator skipped version 5.0 directly into 6.0, and Symantec skipped version 13. Each and every one of those had different reasons for the skipping, but the common denominator is that skipping versions is hardly a big deal.

Yeah and Salt jumped from 0.10.0 to 10, or something, and everyone called them out on marketing bullshit.

People jump around with their numbers and it is usually a dumb marketing ploy that gets called out as a dumb marketing ploy. This is less of a marketing ploy, than a poor marketing choice.

"Oh, they went from 5 to 7 because they fucked up 6 and couldn't get it out?"

and

"PHP developers can't count to 6"

Instead of just:

"A second attempt PHP 6 is out"

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 perception of version 6 as a failure - not as a superstition but as a real world fact (similar to the association of the word 'Vista' with failure) - will reflect badly on this PHP version.

OMFG DONT CARE

The case for 6 is mostly a rebuttal of some of the points above, but without providing a strong case for why we shouldn't skip version 6. If we go with PHP 7, the worst case scenario is that we needlessly skipped a version. We'd still have an infinite supply of major versions at our disposal for future use. If, however, we pick 6 instead of 7 - the worst case scenario is widespread confusion in our community and potential negative perception about this version.

Sure, nobody is arguing 6 to protect the environment from wasted integers, they're just saying that the number that comes after 5 is 6.

Not Actually Caring

I, like many knowledgeable onlookers don't actually care which is picked. I am totally in favour of a vote and a series of arguments, but I feel like every argument in that pro-7 list is completely invalid, and the attitude is "well, 7 have more arguments than 6 so... 7!"

The whole time I've been watching this I've just been thinking about the Ministry of Silly Walks:

I have no arguments that are valid to tell John or his friends to not walk like that. Other than, it is not logical, it looks silly to everyone outside of the ministry and it just is not necessary.

Do what you want internals, just don't cancel the vote [again]. Pick an answer and everyone on the losing side needs to bite their tongue, and hopefully the winning side will too.

Alternatives

Here are some of my favourite alternative name suggestions.

I'll take any name that internals pick, but for crying out loud please pick something and let this vote actually go through.

Comments

Gravatar
Michael

2014-07-23

Great post, Phil - I'll just take issue with two points, pretty much irrespective of the 6/7 debate:

  1. People know where to go to get their quality information, otherwise we'd all still be using mysql_connect() in our view files

  2. Responsible tutorial write[r]s redact, or add a bit of errata

Anybody who spends a day in http://stackoverflow.com/tags/php (as I know you have done) is horribly aware that these points are false. We've only begun to see a dent in mysql_connect() in the past 6 months there. New users who most need to know the information largely have no idea where official PHP documentation is or even that official documentation exists...

Because of 2. The web is awash and will remain awash in terrible old PHP tutorials which make no reference to official language documentation at php.net. New users learn by googling things like "php tutorial", and do you want to guess what the first result is there? (hint: it's not Sitepoint or Tuts+, and it isn't affiliated with the W3C)

It's correct that /responsible tutorial writers/ redact or add errata, but point 1 above won't be fixed until the responsible tutorials rank above the irresponsible ones.

Thanks again for the post, and to reiterate, this has nothing to do with the 6/7 debate. I've helped literally thousands of n00bs find good information sources after being misled by poor ones.

Gravatar
Ionut Bajescu

2014-07-23

"PHP developers can't count to 6"

Haha, internals syndrome. Our arrays is infected.

[3] > ['a','b','c','e','f','g','h']; // array( // 0 => 'a', // 1 => 'b', // 2 => 'c', // 3 => 'e', // 4 => 'f', // 5 => 'g', // 7 => 'h' // )

Gravatar

2014-07-23

Michael: Yeah, 1 and 2 were backed up very much by 3.

"[Many] People know where to go to get their quality information, otherwise we'd all still be using mysql_connect() in our view files"

I should probably add: "and those that don't get linked to PHP The Right Way and other modern resources when they end up on StackOverflow."

"Responsible tutorial writes redact, or add a bit of errata"

I stand by this, but of course they are plenty of irresponsible tutorial writers.

Yes, as it stands those two arguments (without that addition and the third point) are not entirely representative of this wonderful community of ours. :)

Gravatar
Jasper N. Brouwer

2014-07-23

I believe the argument about bad/incorrect/outdated information is irrelevant: Irresponsible writers existed in the time before PHP 5, they exist now, will still exist when PHP 6 or 7 is out, and will continue as long after that...

Gravatar
Nicholas K. Dionysopoulos

2014-07-23

There is only one valid argument for naming the new version PHP 7.0 (or at least 6.1, but not 6.0). You know it, I know it and everyone else knows it that the only PHP "6" version that's ever been out some five years ago was alpha quality and not really supposed to be used in production. You know who doesn't know it? Some crazy hosts –like 1&1– which offer PHP 6 for the last 3-4 years to their clients. The alpha quality stuff. On production servers. And people use it and ask why everything is "suddenly" broken. Argh!

It has been a real struggle for us to explain to people that PHP 6 comes before PHP 5.3 and no, if you try to use it our software which requires PHP 5.3 or later won't work. If we end up having another PHP 6 which is newer than PHP 5.5 it will only further confuse our end-user clients when asking for support and ourselves doing tech support to these end users. If we see that they are using PHP 6 on their server, which PHP 6 is it? The correct one or the broken one? How can we tell them that even though they have PHP 6.0 they have to upgrade to PHP 6.0 because their 6.0 is something from five years ago but the 6.0 we support is something that's just been released? If we tell that to a client, an end user, who trusts their host to manage their shared hosting environment at best they'll think we're drunk, at worst they'll be demanding a refund because we are playing them for fools. All that because some hosts are apparently run by drunk monkeys on meth.

Gravatar
Ales

2014-07-23

I personally couldn't care less, how the next version is called. I just want that the vote is over. So that we can put this nonsense behind us and move forward, to the important things.

Gravatar
Fred

2014-07-23

When marketing fails, it's a dumb marketing ploy. When marketing succeeds, the responsible one is praised like he is the next Steve Jobs. Programmers are great. But every great product requires great marketing. If PHP-NG, is going to be a great product - and I believe it will - please, put some barbecue sauce on it!

Since it will be start of something new do not bother to do something completely different with the version number. My vote rather goes to PHP 20 (to celebrate the upcoming anniversary) than to do a simple +1 or, even worse, a +2 with bad arguments.

Gravatar
Nikos Gr

2014-07-24

Totally agree. +1

Gravatar
Ashish

2014-07-24

Version naming aside, I just love the bickering over what to even call "type hinting" with scalars.

Gravatar
Gary

2014-07-24

Is it really such a big deal? I mean whether it's named PHP 6 or 7, I personally won't be losing sleep over it. The only thing I'm somewhat mad about is that they are spending so much time and effort on debating a version number -- just focus on reading/fixing the actual release rather than a bloody name! It has a vague ring of the dreaded tab vs spaces in code debate that just goes round in circles. Come on guys, this isn't even worth the time worrying about.

Gravatar
Theodore R. Smith

2014-07-24

This is absolute, pure lunacy! And in the same month as all the other superfluous dramas! Facebook is scrambling to get a language spec codified and blessed before the language fractures into 3 or 4 forks, and I say, all power to them! I'm seriously thinking about retooling my company away from Zend Corp. and completely embracing HHVM+Hack.

Every single person who voted PHP 7 should be ashamed of themselves. The vote is just an indictment of how they view their users: Simple-minded idiots. If Zend's stock was public, I'd be shorting them right now.

Gravatar
Hassan Khan

2014-07-24

> My experience is that most developers have not got a value that PHP 6 was ever even half a thing

I think you meant 'clue'.

Gravatar
Dominic Scheirlinck

2014-07-25

If 6 being greater than 5.3 in a version constraint was in any way a problem up until now, then composer would have had to patch their platform packages support (https://getcomposer.org/doc/02-libraries.md#platform-packages) to recognize that ">=5.3" shouldn't include the old PHP6. Hint: they haven't (https://github.com/composer/composer/blob/master/src/Composer/Repository/PlatformRepository.php#L39).

This is the extent to which NOBODY is using PHP6 to mean anything, and to which it's safe to have just done the sensible thing and incremented from 5 to 6. :(

Gravatar
Ferenc Kovacs

2014-07-25

"I've made a 3.0 branch before, then decided it didn't warrant a major release at this point.

I've made a 3.2 branch before, then decided that it actually needed to be a major after a few more additions came in." and I guess there were also dozens of medium+ sized conferences talking about those versions, right? http://lmgtfy.com/?q=php6+conference

I can understand why the just use version 6 supporters are coming from, but I really feel that they aren't really trying to put any effort into understanding the other side, but usually just call them and their arguments stupid instantly.

I think we all live in our own bubble, and it is pretty hard to think to the php community as something else than our own bubble. Yes, if we only consider the php community as those people who are either never heard of the first php6 attempt, or well-informed enough, that they know that why this version is different than that version, then the only problem left is to clean up our internel stuff (wiki, bugtracking, there were some checks for the "old" php6 in our phpt's) and hope that the new content is overtakes the google results and the bookstores so the old irrelevant content isn't confuses/misleads anybody.

compared to that, calling it php7 make us target for some easy jokes and banter, but nobody is mislead or confused about what the next version is and what isn't.

I mentioned previously that I don't have a strong favor for 7, but I find it sad how many of the prominent community figures (like yourself) isn't really trying to take the arguments seriously or accept that some people weight arguments differently than them.

Let's see how the voting ends, and hope that better option wins.

Gravatar

2014-07-25

Ferenec: Welcome fellow LMGTFY lover. I also have the stickers on my laptop. Congratulations.

I wonder if you meant "talking" or "talked". Conferences happened, and if a few years ago people were talking about "Project PHP6" then great, cool for them. But unless I get into a time machine and go back 4 years I am not going to have a problem confusing the fact that PHP 6 then was an upcoming major, and that PHP 6 now is an upcoming major.

This - again - is a bullshit argument.

The only impressive argument I have heard is that some hosts (none that I have ever seen) offer "PHP 6" as an option RIGHT NOW, and that refers to an old PHP 6 branch commit. That would make it insanely confusing, as people in a month or two would switch to that and instead get an old PHP 6.

If I could find out which exact hosts and how many users they had, might make me think PHP 7 was a good idea, but this old "there are a few google hits for people that talked about an old thing a few years ago" argument is pathetic.

Gravatar
Ferenc Kovacs

2014-07-25

I hope you didn't got offended by the LMGTFY link, it was the easiest thing to link to a google search without manually removing my language and etc. data from the url.

I meant they were talking about it, but that obviously stopped as the development of php6 slowed/halted and then discontinued. there were also a couple of talks php6 going under (talks like http://www.slideshare.net/andreizm/the-good-the-bad-and-the-ugly-what-happened-to-unicode-and-php-6 ), but compared to the previous hype I would say it reached a smaller audience.

"But unless I get into a time machine and go back 4 years I am not going to have a problem confusing the fact that PHP 6 then was an upcoming major, and that PHP 6 now is an upcoming major."

yeah, nobody suspected that you would be confused, but you seem to be projecting yourself to the general audience.

but you haven't answered my question about whether or not your never released version 3 had any similar publicity. I guess not, and that is ok, just it makes it a comparison between apples and oranges.

yeah, some hosts do offer php6, but based on the data from http://webadvent.org/2010/usage-statistics-by-ilia-alshanetsky and that it will be much more easier to compile the new php-next with todays software stack compared to the old php6, I don't think that this will be that much of a problem, but you are right to bring it up.

""there are a few google hits for people that talked about an old thing a few years ago" argument is pathetic." that isn't the argument I have made, you ignored most of it, and trivialized the google result part of it. http://www.nizkor.org/features/fallacies/straw-man.html

I can understand why topics like this are like red cape for some people, because it is so easy to think that there is an obvious correct answer and everything else is just bullshit, but that's also makes it almost impossible to be able to actually understand why those not agreeing you decided to do that.

Gravatar

2014-07-25

I was a bit annoyed, but thats for clearing it up. Bruce Banner is back.

> yeah, nobody suspected that you would be confused, but you seem to be projecting yourself to the general audience.

I hope I am not projecting myself onto the community, I think a lot of people have done that in the discussion. People were saying "Well a lot of the community knew about PHP 6!" and my answer to that has been "people in the know knew about PHP 6, the general community has no idea what it was." To that there are exceptions as with every rule.

Generally speaking:

  1. If you knew about PHP 6 back in the day you were either at an old conference listening to a speaker person talk about upcoming features, and the first tweet/blog post/announcement you see will clear any of your long-standing confusion right up, or...
  2. You're one of those leaders of the community types, and already know whats up.
  3. You've got no idea what PHP 6 was and dont care.

> but you haven't answered my question about whether or not your never released version 3 had any similar publicity. I guess not, and that is ok, just it makes it a comparison between apples and oranges.

Absolutely, PyroCMS v3 has been a discussed thing for a long time, and while no official announcements have been made (yet) what was intended for 3.0 will be very different and much more awesome. We will not just throw 3 away because we never released it, and nobody would expect us to. PyroCMS is the most watched PHP CMS on GitHub, which makes it fairly high profile.

I am sorry you feel like I trivialised your argument, but that seemed to be what you were proposing. Everything else was about you being sad that more leaders are not trying to accept the pro-7 arguments, but as I have said each and every argument listed on that RFC is irrelevant and shit, as is the "some old conference talks were about 6" argument I believed you to be proposing.

I think there are some smart people with (currently two) good pro-7 reasons, but none of those reasons are listed on that RFC, and that is what this post is about - using shit arguments to make a serious decision.

Gravatar

2014-07-29

Testing

Gravatar
Vincent

2014-07-30

And here I was, wondering what great new features the next PHP version is going to have... but it turns out the kids that run PHP cannot even agree on a freaking version number....

Tell me, why am I still using PHP?

Gravatar
Brian Corrigan

2014-08-01

Most people have never heard of php6. Making the next version 7 makes zero sense. You name something to clarify intention and purpose, not to nitpick over semantics that only a few core folks care about.

Gravatar
James G

2014-08-05

Right, so the arguments are:

A: 5 + 1 = 6 B: 5 + (1 + "1") = 7

Amirite?

Gravatar
Shawn

2014-08-24

lol you always make me laugh Phil, and I agree. I don't see why it should be called anything other than PHP 6.

I mean if there was enough concern over people being confused I think a better arguement would be to have a lettered suffix on the end like PHP 6-RE or whatever. (Real Edition). I would be behind that over using 7. But I still don't see much reason to do that. I think really only hardcore followers of the php projects even know those kinds of details of where php has been in the past. The average programmer doesn't know that much.

Post a comment