Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:76755 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 77343 invoked from network); 21 Aug 2014 17:29:25 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 21 Aug 2014 17:29:25 -0000 Authentication-Results: pb1.pair.com header.from=adam@adamharvey.name; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=adam@adamharvey.name; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain adamharvey.name designates 209.85.213.170 as permitted sender) X-PHP-List-Original-Sender: adam@adamharvey.name X-Host-Fingerprint: 209.85.213.170 mail-ig0-f170.google.com Received: from [209.85.213.170] ([209.85.213.170:59274] helo=mail-ig0-f170.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id B4/42-64991-27C26F35 for ; Thu, 21 Aug 2014 13:29:23 -0400 Received: by mail-ig0-f170.google.com with SMTP id h3so13051114igd.1 for ; Thu, 21 Aug 2014 10:29:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adamharvey.name; s=google; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type:content-transfer-encoding; bh=OlUxcbPPbVw+Ed2ThpRkxsUMO2J/HrEAjA8835HC5K8=; b=zf4BHcUMMp21bNmBJgm5xxKSka8eiBPf3txtHwqyPmh+mKAKpe5VqTQ6wVwpv2TkGk rJZkh4tmNqUjBZ+P6EMTPPN6p4Ux2gfiwxlY43+aYuyaN616d+gYNioxldANYIo6tmHY MNg9vjNmSAQokiHiSLiMJKZAtB0bGdYtSoi3k= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc:content-type :content-transfer-encoding; bh=OlUxcbPPbVw+Ed2ThpRkxsUMO2J/HrEAjA8835HC5K8=; b=GvwyTGT/8WdqUxUk00S9YIV3T5Kt6s/OVeDH59S2wgLl+vs2MxePffKCzs7hELr0+6 3XbmUyVLOqZm7ZtOcXd4oI+ZoGcsiT/41r4eSmeoQ17Am3cd7S2YG6ASRh/iO4/1kDbd CN46jyoy9s/QPd4ejXo+D4ZqJuG+z0rdv9CXRslWaxUXD6W/zDEGX8PmNYpL7XRDcsPy YjB3p/ozMRC62rJgKrVRVbFSVjxjqYWgTPIgY6MU9noxVTnuUraUe8fFJMqy64dNZTHE isUc6l+P+zBa+BfL1MGhoLRCnTm2Hn+sNoHvN5hu3IB2kjyxoBcnn3dZbQTXIyfGS4r6 5Fdw== X-Gm-Message-State: ALoCoQmQ+r/Yc+wjMxhhf2YWdlOx4B2eWNQpW5JJ3+AvchEZLSA/ZNvWO/2pQoTAUXJS0rGVakFR X-Received: by 10.50.56.38 with SMTP id x6mr5750950igp.30.1408642159703; Thu, 21 Aug 2014 10:29:19 -0700 (PDT) MIME-Version: 1.0 Sender: adam@adamharvey.name Received: by 10.42.186.206 with HTTP; Thu, 21 Aug 2014 10:28:59 -0700 (PDT) In-Reply-To: References: Date: Thu, 21 Aug 2014 10:28:59 -0700 X-Google-Sender-Auth: c3Ar24A2v4pZF8xvifPsSAHQKqY Message-ID: To: Derick Rethans Cc: PHP Developers Mailing List Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [PHP-DEV] On BC and not being evil (Was: Re: [PHP-DEV] [RFC] Integer Semantics) From: aharvey@php.net (Adam Harvey) On 21 August 2014 08:30, Derick Rethans wrote: > 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** +1 on everything Derick said. I want to make one more point: if there's just one thing we learn from other languages that have made BC-breaking, major version transitions, it should be that library and framework authors will ultimately have to support both versions in the same code base. Python tried using tooling such as 2to3 to help manage the transition, but in the end the only way Python 3 has gotten any traction is libraries supporting both, which effectively means that library authors can only write the subset of Python that's supported by 2 and 3. Every time we break BC =E2=80=94 in either of the ways Derick said =E2=80= =94 we narrow the subset of PHP 5 and PHP 7 that's available to people writing PHP code that has to work on both. If we narrow it too far, it'll be too unexpressive, or too hard to use, or just plain won't do something that they'll need, and PHP 7 will risk becoming this decade's Perl 6: the cautionary tale for what happens when you burn all the boats. PHP 7 is an opportunity. It needs to be one that we embrace, and take advantage of, but most importantly one that is evolutionary and allows our user base to come with us. Adam