On Fri, Feb 17, 2023 at 8:17 AM Jeff Garland
Well it isn't for those users stuck on c++11. There are users for which the new facilities are quite beneficial.
There is no question that new C++ features can be beneficial. But the nature of the bureaucracy is that it too steeply discounts the value of doing nothing. Every new feature comes with an opportunity cost and the nature of the committee is that the authors of successful papers reap the benefits, while everyone else pays the costs.
rush to deliver spaceship broke some code
So what? Progress can't be made without *some* mistakes -- as you should know, there are a lot of complicated cases. The fixes for that breakage weren't difficult.
I would even question the assumption that op<=> represents progress. This is an example where the purported benefits are likely not worth the cost. The whole thing seemed to me to be a public relations maneuver. Regardless of how "difficult" the fixes are, a key objective of new C++ standards is to not break existing programs. I expect the frequency of breakage to only increase with time, as the activities of the committee deviate more and more with the original function of ISO bodies: "ISO is supposed to (a) rubber-stamp existing de-facto standards, (b) provide a "safe space" for major industry players to negotiate a standard without violating antitrust laws"
...it is a problem for any large organization... All this applies to Boost just as well as WG21.
Well, no it doesn't. Boost is not a large organization, it has no bureaucracy, it has no voting, and it has no papers. It is actually a federation of independent libraries where each library is governed by a dictator whose interests are aligned with the users of the library. This setup ("social technology") is pretty darn effective. Collective progress is achieved by people willing to do things; the person proposing a solution is also the one incurring its cost of implementation. Thus economic incentives are aligned.
Boost should not follow. Instead, we should lead. As a member of Boost since the early 2000's I couldn't agree more. I don't think we are doing that currently, sorry.
Yes I think you are right about this. When a successful organization loses its founders without solving the "succession problem" (https://samoburja.com/the-succession-problem) it can stop being a live player. Boost was a live player when it led useful and successful additions to the standard (C++11). But when Boost's founders stepped back (for the known reasons) the innovation slowed, and WG21 was seen as the preferred vehicle for achieving progress.
And continuing support for ancient revisions of the standard isn't a way to lead to the future.
"continuing support for ancient revisions" is a strawman. There is an enormous quantitative difference in the cost of supporting C++03 versus the cost of supporting C++11. To be specific, we gain a lot from dropping C++03. We gain very little from dropping C++11: all we get is removing a few configurations from Continuous Integration. Not worth it.
I don't want to get into a big debate about this, it's not worth our time.
It is definitely worth my time, because the focus of 100% of my professional work output is to improve Boost. It is to lead by example, and refresh the foundations of Boost by performing the roles of the missing founders. Instead of pointlessly breaking existing users every 3 years I am doing this: * preparing a transition from boostbook to Asciidoc (boostbook is at end-of-life) * creating new Asciidoc style sheets to make our docs look good * helping build hdoc to replace our use of Doxygen (https://hdoc.io/) * preparing a new website to replace the existing Boost website * preparing "Powered By Boost" - a server that runs on Boost technology - deployed publicly - pages demonstrating Beast, MySQL, Redis - using Describe, Mustache (even though it is not in Boost yet) - open source - example code for doing things people want to do * promoting Boost on Twitter * continuing to deliver value for users with Boost libraries like JSON, URL - and the upcoming Buffers, Http.Proto, and Http.Io * sponsoring talks for CppCon and videos for the upcoming "Boost Recipes" youtube channel Thanks