Boost logo

Boost :

Subject: Re: [boost] Some statistics about the C++ 11/14 mandatory Boostlibraries
From: Edward Diener (eldiener_at_[hidden])
Date: 2015-05-14 19:27:04


On 5/14/2015 7:00 PM, Niall Douglas wrote:
> 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.

If C++11/C++14 does not offer anything to a library developer of an
existing library than what they already have with C++03 and Boost, what
is the impetus to add C++11/C++14 support to a library ?


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