Boost logo

Boost :

From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2023-11-28 20:36:19


On 28/11/2023 18:41, Andrzej Krzemienski via Boost wrote:

>> Users vastly prefer even the "defective" std components over the
>> theoretically-better boost components, simply by virtue of them being
>> in the standard, with all of the benefits this brings. Education,
>> documentation, ubiquity, and so on, for std components is orders of
>> magnitude more robust than the boost equivalent. This more than makes
>> up for any perceived deficiencies. Like it or not, vocabulary types
>> and algorithms which make it into std are going to have an enormous
>> advantage over any third party code.

I think the pendulum may swing back in the next few years.

To explain why, it's probably not widely known yet, so I shall make it
so now: I intend to quit LEWG when the C++ 26 IS cutoff occurs early
2025, and I will only be around LWG until my papers finish wording.
After that I'm done with WG21, all my papers not into LWG I'm dropping
on the floor. I've had enough with how things are done at WG21 - it's a
poor use of my scarce free time.

Why? I think WG21 has become ever increasingly awful at library
standardisation since C++ 14 onwards. There is a lot of
design-by-committee, and if we were good at it, great, but we really
really are not good at it.

Every major standard library addition since C++ 14 onwards has had at
least one easily fixable major design flaw in my opinion. Boost has
repeatedly moved to implement those standard library additions, but
**fixed** WG21's mistakes either immediately or within a short period of
time. One of the most egregious examples in my opinion is `std::variant`
where the whole valueless by exception footgun was 100% avoidable, and
Boost.Variant2 immediately eliminated that footgun. This is hardly an
isolated example: Boost's `shared_ptr` is less footgunny than
`std::shared_ptr`. Boost's Optional is arguably more footgunny than
`std::optional`, but a lot of people think its extensions are worth it.
I could go on (e.g. `boost::error_code` over the fundamentally unsafe
`std::error_code`), but you get the idea.

I think that as WG21's increasing dysfunction at standardising library
becomes more obvious to the C++ ecosystem, the need for fixed standard
library facilities will grow because the standardised ones will become
toxic to use in newly written code. I think Boost is as good as anywhere
to be the natural source for fixed standardised library facilities. So
**PLEASE** Boost keep doing what it's doing, keep standardising
standardised library facilities, because you're a hell of a lot better
at it than WG21 in my opinion.

(For anybody interested, I'll be moving in 2025 over to the C committee,
where I think my time and energies will be far more effectively used
than what WG21 is capable of allowing me to achieve. I actually believe
I'll have more impact on C++ from WG14 than I ever could at WG21 due to
WG21 having become so dysfunctional. Before anybody emails privately to
ask, yes Herb and Inbal knows my thoughts and feelings here in
substantial detail, and they both know I'm moving on in 2025)

Niall


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