Boost logo

Boost :

From: Vinnie Falco (vinnie.falco_at_[hidden])
Date: 2024-05-10 00:54:04


On Thu, May 9, 2024 at 3:34 PM Ville Voutilainen <
ville.voutilainen_at_[hidden]> wrote:

> While there's various pieces of what you wrote that I find incorrect or
> something I disagree with
>

I would be happy to hear about how or why the points I raised are
incorrect. It is true that I have attended far fewer meetings than you, so
perhaps I am drawing incorrect conclusions. To make things easier I will
rephrase some of my issues as questions:

1. What qualifications, skills, or experiences are required to attend a
meeting?
2. Are all votes counted equally regardless of skill or experience?
3. What mechanism ensures that votes are made strictly on technical merit?
4. What stops people from voting when they haven't read the paper?
5. What stops people from voting when they don't understand the paper?
6. What stops people from voting when they don't understand the domain?
7. What protocol detects or prevents conflicts of interest?
8. What system discourages horse trading, or exchanging votes ("you vote
for me I vote for you")
9. What are the measurable benefits of open attendance ("everyone should
come to meetings")
9.a Should my girlfriend, who does not know C++, attend the meetings?
Should she vote? Why?
10. What forces discourage bad ideas and encourage the good ones?
11. What stops bad ideas from getting passed ("trust me bro")
12. What ensures good ideas or needed features eventually arrive (tragedy
of the commons)?
13. What retrospectives measure the performance of wg21 consensus decisions
quantitatively?

To further elaborate on number 11 using the same paradigm as my previous
replies, in the external library "market" if the ideas in your library are
good then people will use it. The merit of ideas in the external library
ecosystem is measured quantitatively by the adoption of code. More people
integrate your library when it is good, and people ignore your library when
it is bad. In the WG21 process, there is no system of measurement except
people's opinion. "I think this paper is good, therefore the paper must be
good because I am an expert in such matters." When someone's paper goes
into the standard, it is forced onto every developer's computer because
vendors must include it with the toolchain. APIs in the standard library
are thus offered a privileged position: they do not need to first become
popular with the wider C++ community before everyone is eventually forced
to download them. This of course attracts some unsavory folks who prefer to
derive benefit from the work of others ("do what I say, because I know
better"). It is unfortunate that these folks seem to also have an uncanny
knack for navigating bureaucracies and social engineering (to which I admit
I am fabulously inept).

What I love about Boost is the absence of politics. You can't bribe your
way into Boost and once your library is in, no one tells you what to do (a
"federated" model [1]). You still have to satisfy users or else people will
stop using your library, despite it being in Boost. This of course leads to
another problem ("Boost has unmaintained or old libraries that don't work
well") but I vastly prefer this outcome as it does not chisel into
permanence a growing archeological record of bad group decisions ("muh ABI
compatibility"). No one forces you to use Boost, yet because Boost offers
such compelling utility it is bundled with many operating system
distributions.

There is probably a political analogy lurking in here where Boost's
federated model reflects the benefits of capitalism, free markets, and
competition while WG21's socialist form of model reflects the ills of a
command economy complete with apparatchiks, the inefficient allocation of
resources, and the failure to meet the needs and wants of consumers (C++
users).

I wasn't there for it, but I guess the genius of Beman was setting up the
federated structure of Boost which for better or for worse has motivated
individuals to engage in the highest level of C++ charity: to write a
library, subject it to review, and continue to maintain it for the benefit
of everyone under the Boost Software License, without the use of force
under the color of ISO standardization authority. When Boost library
components were subsequently adopted into the standard it was done without
force, they made it in on their technical merit and field experience. This
seems quite different from how the process works now, and I wish we could
return to it.

Thanks

[1] https://en.wikipedia.org/wiki/Federation Here, Boost is a federation
and individual libraries in Boost are self-governing states which have
autonomy over their internal affairs


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk