Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:106820 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 63976 invoked from network); 30 Aug 2019 21:24:14 -0000 Received: from unknown (HELO mail-qt1-f195.google.com) (209.85.160.195) by pb1.pair.com with SMTP; 30 Aug 2019 21:24:14 -0000 Received: by mail-qt1-f195.google.com with SMTP id j15so8656187qtl.13 for ; Fri, 30 Aug 2019 11:56:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dqxtech-net.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=9eAqAQKGNqykxqwDKux76YFDT/ZmIaz4n42aKdYbs0g=; b=Y6IZFk+klUsBV0s9Juf2tylHeI2E2gHxEZnRkwHUereSF//irsm2sTDddMgs97vwYp qR2KFT0VQIvGEwrylGoXZyg3hxsPg+V7wOiWUrg2iNL5z/pmMMMwM6cgkNrP3rxs+I1L 0QUofN6lAwiHBu5/yGUC6FGXBZ0VkXhq52SOkqn/5juTlbmSDOCEDaVsdgi/BLEirlNM uZpXWXd4aZ/Iic5c5KgfhfvT7/c0/N2U6O4jfvlJVxMHds3iG70QtM9GT08J48VMH4ui DKJXzeveLJP0kG6tGxNzdrYIzxnsUXneLcWFp8Wr/DrdeWjX/GJpy3n05YlastmoA9l8 ygNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=9eAqAQKGNqykxqwDKux76YFDT/ZmIaz4n42aKdYbs0g=; b=W+rCNnKpN3lLtnIMmGH6AzEMGvsnGF/Iy56/o142Q46EDcY+vV+hnvhfexQlr1Yzxn QIoK/RIbkKD4R28Bm0742q+4J1mDliKsk5ervHmLJp7+p6dRW3BRfD0LBj9hGNOfukfK wXYQYjVxB12aLde0SF/H3ENIyTdG5nFdDnhUCaCAdzLWwGJL8gbEubDapm+wJwT7MdXf th6qz2GPtp55OM+NapKyrowg8BHdcZznLPebCXc2dgI6aQ1sr0MGJYWasswsk/7WIHRN bHl1GEFRFsgDYG4Ol5ectLiKI/n8JXx05Y/EvJ287xZWQP9YKbvWQYrE5b1Ebdw/O/av MYww== X-Gm-Message-State: APjAAAXIscIeAezRVdjGjOhAz1SXdxw3VbWMClr7Wz4bldExYsLrSVUm 9DZWp3n0VhOp6lKAFaapKnTHtGU3uKo= X-Google-Smtp-Source: APXvYqzzORVKOlhdZZO/3AM4d1d7l0DnafaYCtERDDKBkfz0br+MqV7jhB5UPofjEmlBTRUkcQ/zPQ== X-Received: by 2002:ac8:5247:: with SMTP id y7mr17316437qtn.107.1567191416203; Fri, 30 Aug 2019 11:56:56 -0700 (PDT) Received: from mail-qt1-f175.google.com (mail-qt1-f175.google.com. [209.85.160.175]) by smtp.googlemail.com with ESMTPSA id 6sm3789086qtu.15.2019.08.30.11.56.55 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 30 Aug 2019 11:56:55 -0700 (PDT) Received: by mail-qt1-f175.google.com with SMTP id u34so8740394qte.2 for ; Fri, 30 Aug 2019 11:56:55 -0700 (PDT) X-Received: by 2002:ac8:5354:: with SMTP id d20mr16407151qto.119.1567191414849; Fri, 30 Aug 2019 11:56:54 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: Date: Fri, 30 Aug 2019 20:56:43 +0200 X-Gmail-Original-Message-ID: Message-ID: To: Chase Peeler Cc: PHP internals Content-Type: text/plain; charset="UTF-8" Subject: Re: [PHP-DEV] Bringing Peace to the Galaxy From: andreas@dqxtech.net (Andreas Hennings) On Fri, 30 Aug 2019 at 19:38, Chase Peeler wrote: > On Fri, Aug 30, 2019 at 12:39 PM Andreas Hennings > wrote: > > The only way to make this possible is to either deny all progress, or > > to make a distinction on file level (or "package level", whatever that > > means). > > So, opt-in BC breaks. > > > That's not true at all. There are a ton of things that have been discussed > that will progress the language and don't require any sort of BC break. > Union types is one example. Support for Enums is another. > > Even if a BC break is required, it's not automatically a bad thing. Whether > we are looking at plugging up a big security hole, getting rid of/modifying > a rarely used feature, adding support for something that it's currently > impossible to do, or just doing something that adds tremendous value to the > language. In all of those cases the impact of the BC break should be > weighed against the benefits. The problem and trade-offs I am describing are already impacting me today. I am working on a Drupal 7 site with lots of legacy code, and I am developing Drupal 7 contrib modules that I want to be available to a large audience. In one of these modules I initially used the ?? null coalesce operator. Then I had to replace all of the instances of ?? with the more verbose old-school code, to make it compatible with older PHP, because there are still enough Drupal 7 installations out there which have not upgraded to PHP 7 yet. I also had issues with old 3rd party libraries, which stood in the way of PHP version upgrade. In a world with "editions" per file or per package, such projects could more easily use the newest PHP version, while the old libraries would continue working.