On Thu, May 9, 2024 at 3:34 PM Ville Voutilainen < ville.voutilainen@gmail.com> 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