Hacker News new | ask | show | jobs
by risratorn 4739 days ago
As an avid PHP user I'm afraid the remaining 1/3rd is truth, the article really is rather biased and in some places not really factual but I'm the last person to deny PHP can improve immensely in some area's.

I once went to a PHP uncon some years ago where 2 members of the php core/extensions team were present, when we got the chance to ask them questions I popped the question "Why doesn't php take the opportunity to fix a lot of the function naming issues, the incosistent argument order, etc ... when releasing the next major version" and their reply was that they don't want to break backwards compatibilty too much. That's plain BS imho. Any non-dot release can break backwards compatibility, especially if it moves the language forward.

1 comments

I don't agree the breaking BC is a bullshit statement. We all saw how long it took for the majority of PHP users to be able to use PHP 5 due to hosts not upgrading. If all code breaks then we'll end up with two branches of PHP for the developers to maintain for very, very long.

The question of whether or not to break BC basically boils down to doomed if you do; doomed if you don't.

Yep. Notice how long it's taking Python programmers to change major versions.
I agree with the idea, but there's room for a coordinated effort nonetheless. From a naming consistency standpoint on strpos vs str_replace, for example, we could have a new set of function names aliased to the old, and let those run in parallel for a while, with deprecation notices on use of the old ones. Ugly? Perhaps, but it's a way forward to standardize the internal function naming without breaking BC overnight.
The PHP team does this already ... it is a slow process, but I think in the right direction: http://php.net/manual/en/migration53.deprecated.php
Not quite for the same reasons it seems. But, since they already do do this, why not take on standardizing function spacing? strpos would become str_pos, etc.
Because there just isn't that much value in it.
That's why you issue depreciation warnings over the lifetime of the next major release but support both naming conventions rather than just nuke the old function names.