Hacker News
points by BlackFingolfin 4 days ago | 0 comments
But receiving a majority vote is not the same as building a consensus. I think that's the sticking point here.
[–] leni536 4 days ago
It wasn't voted out of the blue. There was extensive discussion prior to votes (including weekly telecons for months solely dedicated to contracts). So how do you measure consensus if not by a vote after extensive discussion, leaving everyone to voice their opinion, come up with alternatives and propose polls?

And sustained opposition does not necessarily mean lack of consensus either. WG21 heard the opposition and decided that constracts belong in the proposed draft despite of that opposition. It is very rare that a new feature does not get opposition, even a sustained one.

Now it is clear that there is no consensus between WG21 and the national bodies (although they overlap), but there is clear consensus within WG21.

[–] BlackFingolfin 4 days ago
The definition in ISO/IEC Guide 2 for consensus is this:

> Consensus: General agreement, characterized by the absence of sustained opposition to substantial issues by any important part of the concerned interests and by a process that involves seeking to take into account the views of all parties concerned and to reconcile any conflicting arguments.

So to me it is not at all clear that there was consensus within WG21.

John Spicer, the former chair of SG21 (the C++ Contracts Study Group), also seems to have doubts about that, see <https://open-std.org/JTC1/SC22/WG21/docs/papers/2026/p4381r0...> -- which is quite self-critical.

Don't get me wrong, I am not taking sides here (I haven't even done any work in C++ in the last 10 years), but it does seem a bit more complex than how you paint it.

[–] locknitpicker 4 days ago
> So to me it is not at all clear that there was consensus within WG21.

Not only was there no consensus, reports from the process described the behavior from contracts proponents in WG21 as political maneuvering and trying to ignore criticism by pretending that somehow consensus was not a goal and thus they could simply nominwlly reject and ignore any criticism.

There's a lot of personal attacks directed at Stroustrup but somehow it's left out of the story the fact that Microsoft apparently criticised the proposal as unimplementable. We're talking about feedback from the dominant compiler vendor.

[–] MFHava 4 days ago
> Microsoft apparently criticised the proposal as unimplementable. We're talking about feedback from the dominant compiler vendor.

It's implemented in GCC mainline, it's implemented on a branch of Clang. Considering MSVC: at this point in time I'm not convinced it it a question of implementability, but of will: https://cppstat.org/de/?tags=cpp26&type=lang

[–] leni536 4 days ago
I appreciate that ISO/IEC tries to provide some definifion of consensus, but it's so vague that is borderline useless. Who decides what is "important" or "substantial"? Do we need an other round of consensus for that (making the definition circular)? Or is deciding what is "important" or "substantial" part of the process that is outlined in the second part of the definition (making the first part more or less redundant)? Or is it the opposition to decide if their presented issues are "important" (making it effectively a veto power)?

As for the second part of the definition, regarding the process, that all took place with a measurable outcome. Although "reconcile any conflicting arguments" might be interpreted as unanimity, but that's surely not the intent.

[–] locknitpicker 4 days ago
> I appreciate that ISO/IEC tries to provide some definifion of consensus, but it's so vague that is borderline useless.

Is it though?

I mean, in what world does the concept of consensus means it's ok to ignore all opposing remakes, criticism, and objections?

You have a proposal for the C++ standard which representatives from companies such as Microsoft rejected after describing it as being unimplementable, and knowing this it's supposed to be fine to push forward with it?

What was the plan here? Are these guys so out of touch that they thought petty political chicanery would compensate all the technical problems?

[–] jcranmer 4 days ago
The vote for incorporating contracts into C++ was 100 in favor to 12 against.

Consensus is not the same as a majority vote. But it also doesn't mean that a small minority gets the right to block the feature forever.

[–] bluGill 4 days ago
At some point a minority needs to accept they have lost.

I've been following contracts for a while and my interpretation is some people are refusing to accept that others disagree with them. These people are repeating the same arguments that have been addressed multiple times.

You can disagree, but I look at it as people refusing to work with others voting no.