|
Boost : |
From: John Maddock (john_at_[hidden])
Date: 2006-10-10 13:39:05
Robert Ramey wrote:
> Richard Hadsell wrote:
>> Phil Nash wrote:
>
>> My company (i.e., my boss) is VERY reluctant to rely on third-party
>> software, which includes Boost libraries. If Boost ceased to exist
>> or support new compilers, we would be stuck with a major task of
>> maintaining code, which we did not develop. I'm not saying that this
>> is likely to happen, and I have managed to convince everyone here
>> that Boost is widely accepted and very professionally developed and
>> maintained. However, libraries that are part of a C++ standard give
>> us a reliable guarantee that we can use them in code that will work
>> on new platforms and compilers with no maintenance needed on our
>> part.
>
> I've seen this phenomenon as well. In my view its very misguided.
>
> suppose my company needs a shared_ptr. I go to my boss and say
> "we need a shared_ptr" and "here is one (boost) which is
> a) provided with source code
> b) documented
> c) rigorously and formally tested.
> d) includes all testing infrustructure
> e) is compatible with all currently used systems
> "
> And the boss says - no don't use that - we have no guarentee that it
> will be maintained in the future. Here is what I want you to do:
>
> a) write our own shared_ptr
> b) document it - if you have time
> c) testing - who has time - just add it to our app and that'll be the
> test d) testing infrasture - we can't use third party libraries
> e) other systems? - we have our hands full with just our current
> system.
> So you do this. Now suppose boost disappears and you have to
> maintain the shared_ptr yourself. Which is going to be easier to
> maintain in the future?
>
> and what about when you need regex? Are you going to have someone
> re-write it from scratch? How much is that going to add to the
> delivery date.
Thanks Robert, I couldn't have expressed that better myself.
To take the shared_ptr example:
Lets say you extract the subset of Boost that you are using (we have a
tool - bcp - especially for this task see
http://www.boost.org/tools/bcp/bcp.html), now you have a bunch of "free"
code that's been very widely tested over a great many more platforms and
compilers than your boss has probably invested in :-)
That code isn't going away. No one can take it away from you. You can
choose to upgrade to a new version of Boost from time to time if that's what
you want, or if you find a problem that's only been fixed in a new version.
I see his point in dealing with new compilers: say 10 years down the line
(being rather optimistic on how long lived your software will be :-) ), but
ask him how many of his current staff will still be around then to maintain
a bespoke version ? Sure, no one can make guarentees about third party
code, but remember that the chances of commercial produced - closed source -
code being supported over that kind of timescale is essentially nil: anyone
here remember OWL?
I would also point out that developers from several major compiler vendors
are known to hang out here from time to time (I can think of folks from Sun,
HP and MS for a start). It's heartening to see that these companies care
that their products are Boost-compatible.
And finally, point your boss towards Adobe or SAP, if these big players are
using Boost, there's probably something in it :-)
Regards, John Maddock.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk