Subject: Re: [boost] 5 Observations - My experience with the boost libraries
From: James Mansion (james_at_[hidden])
Date: 2010-03-23 17:35:28
Tom Brinkman wrote:
> I have identified 5 key issues about why boost was abandoned.
> 1) Boost uses exceptions.
> 2) Printf versus Iostream.
Shucks, a hardcore C++ library doesn't cater too well for C programmers!
> 3) Dependencies.
Agreed, its a mess
> 4) Research Projects
> 5) Macros
Well, that's what you get from trying to buil header only solutions with
templates when some old-fashioned inheritance would have done. I agree.
stlsoft stuff is the same.
Personally I much prefer Poco and from what you've said I think you
would too - but I find myself wanting ASIO and Botan uses Boost and so
does qpid - and to be honest there are useful things like tuple and it
can be hard to entirely avoid it.
> int value = atoi("3.00");
Except that this is actually a piss-poor example isn't it? - because an
input that isn't well formed is not detected by atoi, which is why you
have to use strtol and check what the endptr is doing - but no-one every
does that right, every time. Which is why exceptions are there.
> all over your code. Many developers will simply ignore this issue and end
> with lots of code that is not exception safe.
Sure, but its the same ones who use atoi. They probably don't check for
> Boost needs to start providing printf style api's.
> 4) Many boost libraries seem more like they research projects. The
> view is that boost libraries push the envelope of what is possible.
> This is universally considered a good thing and it is always interesting to
> what the best and brightest are up too.
Certainly not universally considered a good thing here, somewhat the
I think maybe Boost should look to partition itself into 'general
purpose' libraries and a number of application-oriented libraries, and
then look at the stability/maturity within those. But its already
fragmented, so there is a possibility to make life even worse here.
In many respects I think Boost displays some of the worst aspects of
open source development, with a tendency to include things 'because I
can and its really clever' rather than 'because you need it to do your
mundane little project'. At the end of the day its a volunteer model and
they don't actually work as well as a model with leadership, vision -
and budget. Which is arguably why qt is in the ascendent now. Perhaps we
should all just put principle aside and learn to moc.
I do agree with a lot of what you say - but not pleasing C programmers!