On 19 May 2016, at 18:15, Vinnie Falco
wrote: On Thu, May 19, 2016 at 12:01 PM, M.A. van den Berg
wrote: This is why I think the monolithic release is no longer a good format, most is not a coherent set of libraries that are all usable from a single users perspective and most users only need a couple libraries. Various attempts have been proposed to reduce dependencies inside boost with the aim to make libraries separately downloadable/releasable.
I like the monolithic format. Its easy to get boost onto a system ("sudo apt-get boost" or whatever). And once its there, you have confidence that you get the whole toolbox should you need it. Its very convenient when building an application or a library to be able to grab any part of boost you need and just use it. Once you accept boost as a dependency then you know anyone using your application or library will have it available and it broadens the parts you can use.
Even if you only need one part of boost (e.g., asio) what's the big deal about installing the whole thing? Its just as easy to install all of boost as it is to install a single library. Some might object that this is not a sustainable development model and if there were a thousand other libraries similar to Boost in that they each aggregated a hundred or more individual libraries into one package then I might agree.
But the reality is that there is only one boost. Nothing else even comes in second place. Having a boost dependency as a single monolithic package with more libraries than you might need at the moment is a reasonable solution, and one that does not waste 180+ project managers time with trying to make their library compile without the rest of boost.
I also like “sudo apt-get”, and I also like the it pulls in all the things you need and not having to worry about things, that’s exactly what I would love to see. The Debian package manager however does not download the whole repository of all debian packages, instead it models package dependencies and download the dependency tree. For boost this would mean that I could run “sudo apt-get boost-math” that it would download boost-math, boost core and maybe a couple more dependencies. I would also be able to pin version "sudo apt-get boost-math-1.31"