On Mon, Aug 23, 2021 at 11:09 PM Pierre Joye <pierre....@gmail.com> 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

Reply via email to