Subject: Re: [boost] Some statistics about the C++ 11/14 mandatory Boostlibraries
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2015-05-14 19:00:29
On 15 May 2015 at 0:38, Peter Dimov wrote:
> > Boost 1.x is obsolete.
> I have to admit that for a long time I hadn't the faintest idea what you
> were talking about.
> I think I get it now. You're saying that most of Boost's internal
> dependencies are to libraries that are now part of the C++11 standard
> library, and can therefore be eliminated, so that a newer, cleaner, Boost
> can have no internal dependencies, and its libraries can therefore be
> deployed independently of each other.
I don't want the dependencies eliminated. I want them loosened such
they can be substituted by users for with STL11 alternatives.
I think that a maintainer, when implementing that, would probably
also take some measures to reduce dependencies. For many Boost
libraries there is a minimal set of course.
> You view this as an obvious good thing, because in your opinion, monolithic
> Boost releases are a pure cost and offer no benefits.
Totally wrong. Monolithic releases are very convenient. I keep one at
https://github.com/ned14/boost-release for git submoduling.
> All this is questionable. You have access to the dependency report and can -
> given enough motivation - evaluate, on its basis, whether Boost libraries
> can feasibly be expected to not depend on other Boost libraries, under the
> assumption that a C++11 standard library is available. Some of them can,
> others cannot. You haven't done this research.
No, I'm saying it's up to the maintainer to maintain their library. I
believe that means making it able to use as much STL11 as possible if
they want to keep it fresh and relevant. Or else they completely
rewrite it in C++ 11/14. I don't mind which.
> Even though many compilers are now sufficiently C++11 capable, not all of
> them are, so Boost "1.x" still does have an audience and is, I'd posit, far
> from obsolete yet.
I don't see why people keep thinking this is an either-or. You don't
just convert your library exclusively to STL11. You make it give
users the choice to externally select what your library uses. They
can still choose Boost as the STL11, and be 98 compatible.
> Plus, monolithic Boost releases are a delivery mechanism that puts libraries
> into the hands of users who could otherwise not have heard of them, or not
> have had the opportunity to use them due to company policy that requires
> vetting each dependency. "Boost 1.x" is seen as one entity and this has its
> downsides but it also has its benefits.
> TL;DR: It's not that simple.
I'm not underestimating the effort involved. It cost me 60 hours to
port a 18k line library to APIBind. Porting a 50k line library would
be considerably longer.
But I still claim that if a maintainer is maintaining their library
to the ideal level, full STL11 usage is something they have done, are
doing, or are planning to do soon, or alternatively are making a C++
11/14 total rewrite of their library. As a corollary, those
maintainers not fully embracing STL11 usage are not maintaining their
libraries as well as they should.
I could name libraries and maintainers right now who are reaching
this ideal and which are not, but I'll leave them volunteer
themselves if they choose.
-- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk