
Zitat von "Stewart, Robert" <Robert.Stewart@sig.com>:
Tom Brinkman wrote:
I have identified 5 key issues about why boost was abandoned.
1) Boost uses exceptions.
there are measures taken where it makes sense to support exceptions and error codes, e.g. in Boost.FileSystem. which libraries should support error codes that currently don't? I don't think lexical_cast is a valid example. lexical_cast is neither efficient nor flexible, it is a simple tool.
3) Dependencies.
The dependencies aren't confusing so much as complex. Would you have each library in Boost reinvent rather than reuse other Boost functionality? Isn't that the point of Boost libraries: reuse functionality written by others?
I don't think the dependency itself is the problem (if it is the result of reused funtionality), but that dependencies are hardly documented anywhere. boost could publish a dependency graph that lets you easily figure out "if I use libraries A, B and C, I can delete all boost directories except X,Y,Z". and make it a requirement for reviewed documentation to state its dependencies.
5) Macros.
Need I say more. The core boost libraries are full of macros. So much in fact, that close examination makes many of them practically unmaintainable.
a lot of the macro'ed code of boost that is really unreadable I think is due to the lack of variadic template parameters. certainly MPL.
The main reason being compiler inadequacies.
that's just reality, and not related to the fact that boost "pushes the envelope". boost has been around for a while and still has code working around MSVC 6 bugs.
There are certainly things that can be done to make Boost more accessible to more people. I'm sure all library authors will welcome constructive input from you and others with your concerns. (I expect patches will be still more welcome.)
this is unfortunately not my experience, that input or even patches are welcome. I understand why that is the case, people got stuff to do. but he has a point in that a boost library only has one maintainer and isn't really a joint effort like other open source projects, even when it is accepted into the official distribution. this interacts with the fact that it is hard to contribute to boost other than submitting a complete library. (see GSoC discussion)