Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2008-07-16 14:45:46


on Tue Jul 15 2008, "Robert Ramey" <ramey-AT-rrsd.com> wrote:

>> B) it allows for breaking changes in non-frozen libs to be treated as
>> features and not bugs.
>
> LOL - this view point is shared by many, perhaps the majority, of
> people in the software development community. It is the bane
> of modern software, leading to composition of components that
> together produce, quirky applications that can be made work
> only with a disproportional amount off effort and frustration.

Most developers don't break interfaces lightly, but occasionally a
breaking interface change can be better for the overall health of
software. At least two of my libraries have had a ground-up redesign
since they were accepted into Boost and I believe that they are better,
easier to use, and the revision produced minimal additional frustration
or effort for users.

Also, avoiding all interface breakage may restrict a developer's
flexibility more than you imagine. Consider:

 * Adding an optional argument to a function or an optional class
   template argument, which should be a non-breaking change for most
   everybody, can break user code.

 * Adding an overload can break user code.

 * Adding a new name to a namespace can break user code.

 * Will you continue to support MSVC6 et al forever? :-)

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk