On Thu, May 9, 2024 at 1:56 PM Ville Voutilainen < ville.voutilainen@gmail.com> wrote:
On Tue, 7 May 2024 at 20:16, Vinnie Falco via Boost
wrote: The structure of WG21 creates perverse incentives, producing outcomes which are not aligned with the needs of the wider C++ community. For example "the standard library can't connect to the internet."
I have never heard of such an incentive being expressed in WG21, and I have attended rather more of its meetings than the two people who make
just slightly questionable claims about what WG21's library standardization process is fit for, considering how much experience
they (don't) have about it. :)
Many people have experiences and yet do not learn from them or otherwise grow. I believe wisdom is the result of pain combined with insight. The pain occurs when reality collides with your internal model of the world. And, with sufficient humility, the insights which follow the experience of pain produce wisdom. True statements about WG21 (and to be fair, all organizations which share a similar bureaucratic structure) can be made without attending even a single meeting. It all comes down to incentives. Paper writers are incentivized to get their paper through, which is not quite the same as serving the needs of the wider C++ community. Take for example, writing popular libraries and applications which in fact I do have a lot of experience with. I have to convince the entire world that my library is useful, fit for purpose, and better than competitors. The moment that my library stops doing these things, new users will go elsewhere and existing users may complain and then seek alternatives. Even if my library is great, anyone can come along without my permission and produce something which is even better. And users can easily switch (well, there is a bit of work involved in that still). I can't force anyone to use my library. Every single user has to be individually convinced to use my work product. This is not a theoretical scenario. My libraries Boost.Beast and Boost.JSON were both written with the intention to be better than the then-current best of class (websocketpp and RapidJSON respectively). One of our projects, called Mr. Docs, aims to replace Doxygen as a superior solution for C++ (it is based on the tip of clang/llvm). When someone uses one of my libraries in a commercial product, their economic success now depends on the quality of my library. Its documentation, performance, lack of defects, and timeliness of fixes and improvements. In other words, they have skin in the game. Let's compare that with getting a library-only feature into the standard. A paper writer need not even provide a working implementation, and when they do there are no particular requirements in terms of how widespread the usage is. All they need to do is convince a small group of people present in the room to vote yes. And eventually convince the larger WG21 body to vote yes. By the very nature of the rules by which WG21 conducts business, it is unavoidable that the progress of papers depends less on technical merit and more on the author's ability to navigate the bureaucracy. As Gor famously said to Niall on a bench while eating a sandwich "90% of the work of getting coroutines through was social not technical" (paraphrased, sourced from reddit). The people who vote yes to papers are not accountable to anyone except the rest of WG21, which is a much smaller group than the community of C++ users and corporations which utilize libraries written by others (including the standard library). If someone votes yes and a feature later turns out to be a dud, the person who voted yes faces no consequences. They have no skin in the game. However if someone votes no, there is a consequence. The authors of the paper may now have a different opinion of the person who voted no. In other words, the entire process is plagued with politics which interferes with technical excellence. Once a paper is accepted and a feature makes it into the standard, the author has no more obligation or even incentive to improve upon the feature. "I'm the author of an accepted C++ language feature" has sufficient value that people may write papers primarily for their own popularity and not out of a particular need. That WG21 has emphasized "participation" regardless of the credentials, skill, or experience of the participants exacerbates this considerably. There's even a program where random unknown individuals can attend WG21 meetings through the Boost Foundation. The bureaucratic structure of WG21 is not capable of responding to timely challenges. For example this business of "memory safety" is something that WG21 cannot hope to ever truly address. It requires, for lack of a better term, a "strong executive branch." That is, individuals who are imbued with decision making power. There is a comparison to the political system in the United States with the Executive versus Congress. WG21 is comparable to the house and senate, which are slow, deliberative bodies that require voting to achieve consensus. While the Executive branch can act quickly, responding to immediate threats. WG21 can't respond to immediate threats such as the government mandating memory safety.
The mission statement of that project sounds fine, reference implementations for standard library proposals, early reviews. There's nothing there not to like. Sounds like a highly valuable service.
I do agree with the name being questionable.
-- Regards, Vinnie Follow me on GitHub: https://github.com/vinniefalco