|
Boost : |
From: Artyom Beilis (artyom.beilis_at_[hidden])
Date: 2024-03-27 20:41:22
On Wed, Mar 27, 2024 at 3:47â¯PM Vinnie Falco via Boost <
boost_at_[hidden]> wrote:
> I guess I'm confused. My understanding is that libraries are considered
> good candidates for the Boost collection based on meeting some or all of
> certain criteria:
>
> * They offer useful, novel functionality not found elsewhere
> * The API is superior to other libraries that do similar things
> * The implementation is exceptionally performant
> * Solving a familiar problem in a particularly elegant fashion
> * The library is already popular and has field experience
> * The library offers C++ standard functionality for older compilers
>
>
I can't say Boost is about excellence.
Far from it. I'd rather call it repository of useful and not-so tools
- Some of them become true legends and go into standard
(like shared_ptr, regex, thread)
- Some are highly influential but sometimes ticky and evolving like
Boost.Path
- Some bring exceptional concepts and highly useful like Boost.Asio but
suffer
from issues that made too cutting edge - creating code that takes forever
to
compile, horrible error messages and gives hard time to average Joe to
maintain
the code (why Unix Domain Socket and TCP socket are different classes
why so much template based code?)
- Some come with good basic idea but try to become to C++ nerdy make it
too limited and not as useful (like Boost.Beast that I personally voted
for
no, but this is since I have actual experience in building useful web
framework CppCMS)
- Some are truly wired concepts that only C++ nerds will be using like
Spirit.
(I mean Bison is way better tool for any practical purpose - but it isn't
as nerdy as Spirit)
- Some are just plainly useful and nice like Boost.UUID but nothing
exceptional
or can't be done easily with other tools.
Sometimes Boost libraries go too far with template metaprogramming
concepts and create something that looks very useful on paper but
true pain in the ... for a normal programmer around.
Being myself Boost contributor (in past) I actually use Boost far less,
especially
since C++11/14 became very common, since using Boost has its own
drawbacks like breaking APIs and ABIs, a horrible build system and other
stuff
that make Boost highly exceptional but also highly problematic in many
cases.
For me, Boost is what made C++11/C++14 today really useful and
playground for something that can be highly useful in future.
I wish that new Boost libraries were more concentrated on usability and
simplicity
instead of fancy stuff. But Boost it is what it is for good and bad.
Artyom
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk