Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:106363 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 61411 invoked from network); 31 Jul 2019 11:00:48 -0000 Received: from unknown (HELO tbjjbihbhebb.turbo-smtp.net) (199.187.174.11) by pb1.pair.com with SMTP; 31 Jul 2019 11:00:48 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=php.net; s=turbo-smtp; x=1565166354; h=DomainKey-Signature:Received: Received:MIME-Version:References:In-Reply-To:From:Date: Message-ID:Subject:To:Cc:Content-Type; bh=kUb7dtjxOL1OMwWxcGu5pu pNUUwGCEhFngitCFliQGQ=; b=vlEW04VolPra1jUxU6FlEI+ONQCff1fAtkcXZ1 v4XORsoQ3KyGbQvENf0G3i0lIkE9TQTzlNJFAru1U1pAk217CwPEQsKXU8KQIEAz tOhvWLmQ1ZDUB+pAfKYm79E+VuYOX2SdETXWb+Nl1kRZQcFB78MSJqjVWEWq2nhS NqG9g= DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=turbo-smtp; d=php.net; h=Received:Received:X-TurboSMTP-Tracking:X-Gm-Message-State:X-Google-Smtp-Source:X-Received:MIME-Version:References:In-Reply-To:From:Date:X-Gmail-Original-Message-Id:Message-ID:Subject:To:Cc:Content-Type; b=SyOQvkjmuJU7bsdQ1Kzdi5xtbtaa6F6eFUxHiRcvdpkjSpsfR86IB9KRULJSp/ k3TgJXrMfuTlqsLxDRJL9hx+dafx25dc5G90XWPyYYe0drRdlJT9z75njpWMB1o9 QkZPjO+ITSaDO6WLgyMvEIyJpPgh26l5CoPSxVsnya/K0=; Received: (qmail 14328 invoked from network); 31 Jul 2019 08:25:54 -0000 Received: X-TurboSMTP-Tracking: 5194962140 X-Gm-Message-State: APjAAAVa3NRrrBXSHzxd+O8RuN1R2gv0pX2xvjedSQSSEujdin4Ztv2g FnVJBQsqIJP0/DcvOHvrc8q3ofdfXtB5bNvQZyc= X-Google-Smtp-Source: APXvYqx++n1Zmw/Phk4rlfYeHrzRwLIOPXoKRkq9gULIvpLplrN7dA1GzCkU7myQGBFaQ6/yhHQR8oeSbvituc+dTDM= X-Received: by 2002:a37:4f82:: with SMTP id d124mr73782140qkb.23.1564561553533; Wed, 31 Jul 2019 01:25:53 -0700 (PDT) MIME-Version: 1.0 1PR0902MB2154.eurprd09.prod.outlook.com> In-Reply-To: Date: Wed, 31 Jul 2019 11:25:42 +0300 X-Gmail-Original-Message-Id: Message-ID: To: Nikita Popov Cc: Bob Weinand , internals Content-Type: multipart/alternative; boundary="000000000000a0ae95058ef5df6a" Subject: Re: [PHP-DEV] [RFC] Explicit call-site send-by-ref syntax From: zeev@php.net (Zeev Suraski) --000000000000a0ae95058ef5df6a Content-Type: text/plain; charset="UTF-8" On Tue, Jul 30, 2019 at 10:37 PM Nikita Popov wrote: > Zeev, > > Nikita, Similarly to how I answered Bob, I want to prefix my message with an off-topic statement that I think is important, albeit obvious. I think you're a remarkably talented developer that is an invaluable asset to the PHP project. Your work on many fronts to improve the language has been tremendous, and much like pretty much everyone else - I recognize it. Again, even though I'm not telling you anything you don't already know, I want to remove any shred of doubt about whether or not I'm sharing this way of thinking. I do. And now, on-topic: I am putting myself at a disadvantage here. I am not suppressing Stas' > voice, only removing my own ability to argue against it, and effectively > strengthening its position. Let's be fair and realistic here. You have a very strong following on internals@ - a position which is well-earned. In most situations when these folks don't have a strong opinion about a given matter, they would count on you to show the way and follow. When you make a statement that you're going to ignore someone - you are very much suppressing their voice; Beyond taking their ability to reason with the most relevant person, and get their opinion on the various issues raised - you're also signaling to your followers to do the same, whether you intend to or not. That said, I want to be clear - any RFC author is expected to explain and defend their RFC, responding to both feedback and criticism - even if they don't have the strong following you have. That following only makes it all the more clear and necessary. Everyone else can still see his arguments and > be swayed by them. If they're good arguments and well delivered, they will > be. If they aren't -- well, that's hardly my own fault. > There's a reason we call these things we do on internals "Discussion Periods". They're not meant to be similar to Closing Statements from the Prosecution and the Defense, trying to convince the jury without interacting with each other. In reality, much of the value of the RFC process comes from the discussion period - and discussion means back and forth. It helps both refine the RFC, weed out bad proposals, and perhaps most importantly - give people more of a 3D view of the RFC - become acquainted with the practical pros and cons of the RFC, some of its corner cases or unforseen impacts - which are often not as easy to understand from reading the formal RFC text itself. Refusing to take part in the discussion when provided with valid feedback hampers the RFC process. I read RFC feedback and engage in discussions, because I want to deliver > the best proposal I can, which incidentally is also the most likely to be > accepted. That makes perfect sense, but it also does not change the fact that you are absolutely *expected* to engage in the discussion regardless. It's comes with the territory. I'm sorry that everything has to be formalized today - had we seen that coming - we'd spell out that the discussion periods aren't meaningless countdown timers that the RFC author(s) can simply wait out, but rather, that they need to engage and respond to any meaningful feedback, and certainly not signal out certain folks by nature of who they are instead of the merit of their specific feedback. We thought that (as well as many other things) was obvious. I am not saying that one needs to respond to every last email message on the subject. There are situations where the discussion reaches a point where there's nothing new to say - on both sides of a certain divide (which is, incidentally, a pretty bad situation to be in to begin with, but that's another topic). But that's not what you're saying - you're saying you're going to stop responding to a person (perhaps more than one) - regardless of the content of feedback they provide. However, not all forms of feedback are created equal. It is a > staple of polite debate that criticism be actionable -- it is not > sufficient to register your disapproval, you also need to suggest possible > avenues for improvement or alternative approaches that may be pursued. > While registering one's disapproval without explanation is definitely insufficient, I think we can agree that this wasn't the case here. Even without reading Stas's messages in detail - their length alone suggests that they provide reasoning for why he's disappoving of the idea, and not just crypitically saying that he disapproves. It becomes even clearer when you do read them in detail. But the other part if your sentence - that one must "suggest possible avenues for improvement or alternative approaches" is really not quite true. That wrongly assumes that an idea that's proposed in an RFC, any RFC - is a good one and should pass - and the goal of the discussion period is to simply hash out issues and make it better. That is clearly not the case. Everything about the RFC process as it was created - both in terms of the discussions before it, and the text itself - makes it clear that there's bias for status quo, and that the burden of proof is on the person that's proposing to change it. That's why we have 2/3 majority requirement (as insufficient as I think it may be). That's why we have a 6 month cool-off period after a proposal fails to pass. That's why the RFC template instructs people to think very carefully whether it's really sensible and necessary to have their feature/change introduced to a language used by so many millions of people. Nothing in the RFC process implies that everyone should help refine the RFC and make it better, if they think that the premise itself is a bad one. It's absolutely valid for someone to think a certain idea proposed is bad, and can't be improved. It's absolutely valid for someone to find holes in a proposal, and not have any ideas on how to fix them - these ideas may sometimes come from someone else. It's absolutely not a requirement for someone to come up with solutions for the problems they find in a proposal. Of course - if they do, that's great - but finding the edge cases, potential problems and possible negative effects - is extremely valuable on its own. Sometimes, the dynamics of the discussion between the feedback provider, RFC author and other participants will help find better solutions. In others, it may simply make people better understand the shortcomings (and advantages) of the RFC, and help them make up their mind about it. If I have found that a particular source of feedback has, over many years, > been consistently and persistently negative and only on rare occasions > yielded an actionable insight, I believe it is my prerogative to remove > this source from my personal consideration, especially if it has a negative > influence on my mental well-being. > It's hard for me to argue when someone is saying that if they do what's needed, it will have a negative influence on their mental well-being, as I'm so much familiar with it first hand. But the choice is yours, exactly like it's anyone's (including Stas's, who I'm sure would do much better from a mental well-being point of view if he didn't feel obligated to respond to ideas he believes are negative to the language he's so vested in, regardless of whether he's right or wrong; or me, for that matter, when I definitely took a negative hit on my mental well being a few weeks ago having to work hard to prevent a certain useful feature from being removed for no reason - a discussion I had no part in starting and was in a way forced on me). If you propose an RFC - you need to have the mental strength to follow through with it, and that includes responding to criticism, including criticism which from your point of view isn't constructive or insightful. If you can't, you have other choices - to not propose it, to have someone else author and lead that RFC, to propose fewer RFCs so that the level of mental strain are reduced, to focus on other less contentious areas, etc. For me, the negative influcence on my mental well-being was a key (if not exclusive) factor in the fact I never ended proposing the revamp of the Voting/RFC rules - and quite a lot of other proposals/RFCs over the years. I knew that if I did - I'd have to engage in unpleasant and often likely uncivilized discussions, including with some very uncivilized people who still believe they have the civilized higher ground (to clear any doubts, that's absolutely not you). It a part of the rules of the game. You can choose to play it, have someone else play it, or stay out. But one cannot play it while creating a sandboxed environment that shields them from feedback they don't like or people whose opinions they typically disagree with. It doesn't work that way. With all that said, it appears we would all do better if we came up with a way that the two 'camps' on internals, which hold opposing views on many topics regarding the direction of the language, could find a way where most or at least some (and hopefully many) of these discussions are avoided in the first place - but without blocking progress. None of us likes the mental toll associated with the current situation, and I think the results are often not very pleasing to either side. I'll be trying to work something out, who knows, it might just work. Zeev --000000000000a0ae95058ef5df6a--