|
Boost : |
From: Vinnie Falco (vinnie.falco_at_[hidden])
Date: 2024-05-09 22:07:39
On Thu, May 9, 2024 at 1:56â¯PM Ville Voutilainen <
ville.voutilainen_at_[hidden]> wrote:
> On Tue, 7 May 2024 at 20:16, Vinnie Falco via Boost
> <boost_at_[hidden]> 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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk