Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Boost advocacy - help needed

Tags:

c++

boost

Possible duplicates
Is there a reason to not use Boost?
What are the advantages of using the C++ BOOST libraries?

OK, the high-level question is "Please provide me with what you consider to be the most effective arguments of why entire Boost, or some specific parts of it, should be compiled on our company's system and endorsed in software engineering standards".

Details of what I need:

  • Would gladly accept both positive arguments (why install), as well as proposed rebuttals of likely counter-arguments I might hear (see question context below).

  • Arguments should be made aimed at both technical Software Engineering team members and/or very technical senior managers - in other words, for the latter, the details of the argument may/should be technical, but the thrust of the argument should be "how would this make/save the company X money vs losing the company Y money as a cost of adding it to our toolset".

Context of the question:

  • I'm a developer in a company with several hundred developers, many dosens of whom do C++.

  • I had the (mis)fortune of being reassigned from my beloved Perl development spot to a team where I am also doing C++ development. So far I found numerous things that I could easily have done in Perl that are very hard/cumbersome to do in C++ (foreach loop as an example), and anytime I hit one of these, the answer 50% likely ends up being "You can't do this in standard C++ but you can do it with Boost"

  • Our toolkit includes some legacy RogeWave libraries, and VERY limited number of Boost libraries (e.g. no regex, no foreach), of very old vintage.

  • Any development must use libraries compiled and vetted by Software Engineering team. That is a hard and fast rule.

  • SE team is somewhat resistant to adding new libraries, for a variety of reasons (e.g. effort to do this; functionality conflicts with RogeWave, for example for RegEx; the risk of installing and using any new software; cost of educating developers, etc...). They will add the libraries if presented with sufficient business need or majorly convincing cost/benefit ratio argument, but they have pretty tough threshold.

So, I'm looking for examples of which parts of Boost are so wonderful (with exact cost/benefit estimates) that installing them would be an Obviously Worth It Effort for Software Engineering.

Thanks in advance for any ideas/suggestions/examples.

Please don't mark this question as subjective as I am looking for measurable answers, not merely wonderful feelings :)

like image 212
DVK Avatar asked Sep 17 '09 06:09

DVK


1 Answers

Wherever I worked in the last decade, when they had their own smart pointer class, I found bugs in that - usually within a few weeks. And, no, I never went and looked at it hoping to find errors.

I got into the habit of posting the following quote from the TR1 smart pointer proposal:

The Boost developers found a shared-ownership smart pointer exceedingly difficult to implement correctly. Others have made the same observation. For example, Scott Meyers [Meyers01] says:

"The STL itself contains no reference-counting smart pointer, and writing a good one - one that works correctly all the time - is tricky enough that you don't want to do it unless you have to. I published the code for a reference-counting smart pointer in More Effective C++ in 1996, and despite basing it on established smart pointer implementations and submitting it to extensive pre- publication reviewing by experienced developers, a small parade of valid bug reports has trickled in for years. The number of subtle ways in which reference-counting smart pointers can fail is remarkable."

This plus a detailed analysis of the bug(s) I found usually got me the job of incorporating the boost libs into the code base. :)

like image 164
sbi Avatar answered Nov 11 '22 11:11

sbi