Boost logo

Boost :

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

on Tue Jul 15 2008, "Robert Ramey" <> 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

Boost list run by bdawes at, gregod at, cpdaniel at, john at