Re: On BC and not being evil (Was: Re: [PHP-DEV] [RFC] Integer Semantics)

From: Date: Fri, 22 Aug 2014 02:26:43 +0000
Subject: Re: On BC and not being evil (Was: Re: [PHP-DEV] [RFC] Integer Semantics)
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-76786@lists.php.net to get a copy of this message
Hey: On Thu, Aug 21, 2014 at 11:30 PM, Derick Rethans <derick@php.net> wrote: > On Tue, 19 Aug 2014, Kris Craig <kris.craig@gmail.com> wrote: > >> On Tue, Aug 19, 2014 at 3:36 PM, Andrea Faulds <ajf@ajf.me> wrote: >> >> > I have made an RFC which would make some small changes to how integers >> > are handled, targeted at PHP 7: >> > >> > https://wiki.php.net/rfc/integer_semantics >> > >> > Thoughts and questions are appreciated. Thanks! >> >> <snip> >> >> And since you're targetting the next major release, BC isn't an issue. > > This sort of blanket statements that "Backwards Compatibility is not an > issue" with a new major version is extremely unwarranted. *Extreme care* > should be taken when deciding to break Backwards Compatibility. It > should not be "oh we have a major new version so we can break all the > things"™. > > There are two main types of breaking Backwards Compatibility: > > 1. The obvious case where running things trough `php -l` > instantly > tells you your code no longer works. Bugs like the two default cases, > fall in this category. I have no problem with this, as it's very easy > to spot the difference (In the case of allowing multiple "default" > cases, it's a fricking bug fix too). > > 2. Subtle changes in how PHP behaves. There is large amount of those > things currently under discussion. There is the nearly undetectable > change of the "Uniform Variable Syntax", that I already `wrote > about_, the current discussion on "Binary String > Comparison"`_, > and now changing the behaviour_ on > `<< and > >>` in a subtle > way. These changes are *not okay*, because they are nearly > impossible to test for. > > Changes that are so difficult to detect, mean that our users need to > re-audit and check their whole code base. It makes people not want to > upgrade to a newer version as there would be more overhead than > gains. Heck, even changing the `$ in front > of variables to £` > is a better change, as it's *immediately* apparent that stuff > changed. And you can't get away with "But Symfony and ZendFramework > don't use this" either, as there is so much code out there I am totally agree with Derick here. We should avoid to change such basic behaves.. thanks > > As I said, the first type isn't much of a problem, as it's easy to find > what causes such Backwards Compatibility break, but the second type is > what causes our users an enormous amount of frustration. Which then > results in a lot slower adoption rate—if they bother upgrading at all. > Computer Science "purity" reasons to "make things better" have little to > no meaning for PHP, as it's clearly not designed in the first place. > > Can I please urge people to not take Backwards Compatibility issues so > lightly. Please think really careful when you suggest to break Backwards > Compatibility, it should only be considered if there is a real and > important reason to do so. Changing binary comparison is not one of > those, changing behaviour for everybody regarding > `<< and > >>` is > not one of those, and subtle changes to what syntax means is certainly > not one of them. > > **Don't be Evil** > > > cheers, > Derick > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php -- Laruence Xinchen Hui http://www.laruence.com/

« previous php.internals (#76786) next »