
Tom Brinkman wrote:
Over the past years, every project that I have been involved with has tried and then either abandoned boost or highly restricted its use.
Interesting. Every project I know is using Boost more intensely every day.
I want boost to succeed, grow and be successful. Its sad. As someone who has used boost from the beginning, and has taken far more than I have given, here are some of my observations.
IMHO, if you have the chance, try to find teams that want to use it and appreciate the high quality you can find here. I am aware that no everybody can choose, but if you can, do it.
Many of the reasons don't have specifically to do with boost, but more have to do with a preference for one programming style versus another.
I have identified 5 key issues about why boost was abandoned.
1) Boost uses exceptions.
Sure, why not? Exceptions make sure that you have to take care of problems. In your atoi example, there is a tremendous risk that developers do not take care of errors.
2) Printf versus Iostream.
And streams are so fantastically cool. Ever since I wrote my first stream operator for some class of mine and serialized some object with it, wow, I never wanted to use printf again. Never.
3) Dependencies.
Yeah, well, code re-use. Of course, it leads to many dependencies but: a) You could restrict yourself to the header-only stuff (no dependency trouble at all) b) You could use tools like ldd (linux) or whatever Windows offers to look at the dependencies. It is pretty easy actually To be honest, I don't mind the dependencies at all. It would be a pretty bad sign if no boost library would depend on others. In some cases, I would prefer even more code re-use. For instance, the DateTime classes could use spirit for parsing and formatting. They did not, when I looked last. And they are much slower than they could be...
4) Research Projects
Hmm? I don't think so. And even if it were true, well, then don't use the ones you don't like. What's the problem? I am certainly not using all of them. But the number of boost libraries I am using is growing, and I would not want to live without the ones I am using.
5) Macros
Yup, I don't like them, too. But one of the really cool things about boost is the platform independence. As a result, when you use Boost, you don't have to care about platform specific stuff (most of the time), because all the ugly stuff is hidden behind the curtains of Boost. To sum it up: IMHO, your 5 points are either invalid (research) or actually pretty cool :-) Regards, Roland