$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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