
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