As a member of one the objecting NBs (Finland), I think the problems here are far more complex than what this post addresses.
I've not been in the committee as long as Andreas has, but I've been trying to dig through historics as things have unfolded.
I think there are multiple causes, some of which are a decade old by now, why we ended up in this clusterfuck we are in. And yes, our NB voted knowing this clusterfuck might be the end result, even though it didn't seem probable to me (though I knew it was possible).
Am I happy we're in this mess? No. I don't think anyone in the WG21 is.
But I also think WG21 tends to forget that even though we call it "The C++ Committee", it is not an official ISO committee. We are a working group that presents the standard draft to the actual programming languages committee, that is SC22. A good bunch of WG21 members seem to forget this way too often. And a good bunch of them seem to just not have read the ISO code of conduct or rules altogether.
And the situation is not helped by a few individuals in the committee that basically shitpost misinformed or opinions why NBs did what they did based on WG21-internal rumours. And yes, there are ~200 active and around 500 in total WG21 members, so we are not going to avoid rumours.
There's a lot to unpack. From my point of view this divide started from how the ANSI/INCITS (the US NB) in 2014 changed from "one-company-one-vote" to "everyone votes individually" and how that effects the measured difference between WG21-internal polls and NB opinions. Even though that was what ISO wanted, as we are supposed to be individual experts inside WG21. But ISO also wants the NBs to have the final say, as NBs work as checks and balances from its perspective. From my understanding, WG21 used to have these checks and balances in the "one-company-one-vote" -rule, but since that is now gone, those have moved to the NB level. Which is what we see here. This has changed gauging the NB consensus inside the WG21 and made our internal polls less informative towards that direction. And it's a very small gradual change that comes from people following the systems without any greater purpose one way or an another.
I need to say that the above paragraph is just how I see it, but I'd love to know whether more WG21 members feel the same or can debunk it if I'm wrong.
Normally, my articles are technically focused and free of personal opinion. Regarding the rejected DIS, I can only say that I consider it a massive disaster and feel sorry for the entire C++ community.
I disagree with this. Sure, this is a blow to WG21, and a major shakeup there. But there are people who claim they saw this coming a full decade ago, just not sure when. If it wasn't for contracts, it would've been something else. And I have little reason to doubt them from what I've witnessed. And if that is the case, this needed to happen, and it might be better that it happened now than with greater consequences later on.
Saying it's a massive disaster for the entire C++ community, I don't buy. That said, I am sorry to those people who are hit by this, and I view this as a failure of the group I am a member of, and maybe I should've been more outspoken earlier, but I don't know if my voice would've been just one more cook in the entire mess, and I never will.
Regardless of whether someone likes Contracts, considers them important, or sees major weaknesses in them, the topic has been worked on for years and has received a majority vote multiple times in its current form. By voting “no,” an established system, one based primarily on trust and respectful collaboration, has been shaken.
This part is not really even an opinion, it's just true. Though how established that system truly was in reality is up for debate.
Every ISO standard is simply a set of compromises. Everyone loses sometimes, and everyone wins sometimes. Overall, the result is one in which all participants have given their best. During the DIS vote, the losing parties refused to accept their loss.
This is what I most vehemently disagree with. Making an international standard is not about winning or losing. And if NB comments are not acted on, even if they are heard, there is very little reason to those NBs to change their vote. As WG21, we, unlike in most previous cases, but using the same process as previously, gambled that the dissenting voices were not numerous enough to vote down the DIS. That gamble did not pay off and now we're here.
The reality I see from historical notes and the current situation here is that WG21 has changed both in composition and how seriously it has taken the NB votes. Our processes have not kept up with the changes, and this is the end result.
The question that primarily determines how to move forward is whether the group can rebuild trust.
100% agree on this one.