Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:115785 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 49272 invoked from network); 24 Aug 2021 09:21:40 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 24 Aug 2021 09:21:40 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 106721804B3 for ; Tue, 24 Aug 2021 02:55:37 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-0.7 required=5.0 tests=BAYES_05,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Virus: No X-Envelope-From: Received: from mail-lj1-f171.google.com (mail-lj1-f171.google.com [209.85.208.171]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Tue, 24 Aug 2021 02:55:36 -0700 (PDT) Received: by mail-lj1-f171.google.com with SMTP id y7so36641936ljp.3 for ; Tue, 24 Aug 2021 02:55:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Azn+H/QyzkJQt6oeIaws7ry6cmDGRrh15uhXW7jWHDg=; b=Oi5tmy3EhEI9K/SmrKGwwczXqwA9XvmMDMRjL8iZhzoQYyH/wjQdAW9xv5GuXD7VSe E+eMLg5eJXzvIaWxLKveq7aCWt60CLzo80ZBbDbZxMaDnQivh21LDeiqr4StCQWpKGAO +3bI27W7qBNJASlKUJGwSq22gtciGWUP7z6THGv+vZSi4lR3YqMQuy/ZBQ/4EWfM2klC 0L0RkFCr9gZzg1nqbuLSwOtZ83BlkUR02bUibL4DRB4nmumKsfelxJQBswdl4vYvYR9j pCNFdj9mLznbvd9Nhee6UuGbt/UZrqmyxjzi8ikaciwfjpJ29ENECaRCwQrcuszvzCVb YN1w== 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=Azn+H/QyzkJQt6oeIaws7ry6cmDGRrh15uhXW7jWHDg=; b=pFscHvM/ibor2hmi7hpg0KF/7j3FS1OmEXoUuPX0E7hc+zS45z7dEcyru2kAPYAPip 69hH8IGWngVPxHtwA7Bs+nuq2PgCATzUBjjBRfRDjnpJIlciOZk+s8ERbotLIcyQYXn8 RhQqBsvmwstE2O61iKVypXQpoqdDw6HFD5aQyiyazeI+D01JpEQQXCwBGPKhQget4JbH 2ZeRJgOirLJ5cvrDXLyyy5xAI4jXZk9JBTTH1kxOM0+ypSqymIjuF1k/B/Rv0u4vGIdi pM+/ofQj8fV/pcyugieCeGT8W72mqxFGn1alxUDWq1YXUSDJYbYmDTqdLH8UItwwDLyS OrRw== X-Gm-Message-State: AOAM531yB8Le/ZqpCwOFjbAyXkCRO5jIje93CunpKZsp/DiDehrqUvnP D0+ejQaMOaY2aXbGVrMwGqBVb9RkjHEqpkEFyl4= X-Google-Smtp-Source: ABdhPJzRFArjndGmZmiZQ/i57Y8bTo+lJ5wmTqHYMdLbTy7PdUtV6Mi52zdSZLEHxr1wQg+d+gyiyWNfqSsAYHSGUBI= X-Received: by 2002:a05:651c:10a:: with SMTP id a10mr30820921ljb.37.1629798934917; Tue, 24 Aug 2021 02:55:34 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: Date: Tue, 24 Aug 2021 02:55:20 -0700 Message-ID: To: Pierre Joye Cc: Deleu , PHP internals Content-Type: multipart/alternative; boundary="00000000000092357705ca4b22a3" Subject: Re: [PHP-DEV] Guidelines for RFC post feature-freeze From: jordan.ledoux@gmail.com (Jordan LeDoux) --00000000000092357705ca4b22a3 Content-Type: text/plain; charset="UTF-8" On Mon, Aug 23, 2021 at 11:09 PM Pierre Joye wrote: > > Many additions went through while being incomplete. It was documented > so in the RFC but it does not make it a good thing. Many of them are > indeed much needed and related to features (some) PHP users have been > waiting for. Are they critical enough for the PHP usage to allow them > in while knowing it is not complete? For almost all recent RFCS > related to syntax, arguments/return types or properties, I don't think > it justifies being added while being incomplete. It is not critical > enough to the larger user base. It makes migration paths harder as > well. > I just wanted to note that while this may be true, it's largely because RFC authors cannot reasonably create and pass RFCs which: 1. Are too large or complex for voters to make an informed decision about. 2. Include too many aspects which are controversial or which have strongly opposed viewpoints within the RFC voters. RFCs which do either of these two things cannot pass, therefore all RFCs which pass do neither. This will always result in RFCs which some people view as "incomplete". It's not because the RFC authors, or even the voters, forgot or "overlooked" something necessarily. It's simply a product of what the PHP voters value. Voters value backwards compatibility; voters value a strong use-case justification for a new feature; voters value consistency between existing language features and new language features. These are not bad things to value, and I don't see how you can expect RFC authors to avoid proposing features which some may see as incomplete. My operator overload RFC is something I've already put at least 100 hours into, it's trimmed down to a very limited set of operators with restrictions on certain implementations, I still have many more hours of work left on the implementation in order to make the necessary changes to opcodes for it, and it still will likely be something which there is significant resistance to. I might put in excess of 300-400 hours of work into this RFC only for it to be rejected because of differences of opinion on the feature. I would be very disappointed if I was able to successfully convince voters of the value of my contribution, address the concerns that were presented and find good compromises, and then be told that my work was faulty and incomplete because it only allows operator overload for objects instead of globally or doesn't allow overloading of the null coalesce operator, for instance. As long as RFC authors must lobby voters to get a feature included, there are features which will be cut in the interest of time, compromise, complexity, and comprehension. I don't see how you avoid that without abandoning the idea of voting altogether, which is something I'm sure we all find value in. Jordan --00000000000092357705ca4b22a3--