From: Nicola Musatti (Nicola.Musatti_at_[hidden])
Date: 2007-06-12 17:01:07
Robert Ramey wrote:
> Nicola Musatti wrote:
> Here is an example of a system that would implement the testing
> required by Beman's proposal. I' m not proposing this system but
> I am just demonstrating that it is possible.
[Reasonable scheme snipped]
I see. A developer might have to wait a while for tests to happen, but
there should be a gain in terms of much reduced confusion with respect
to how things work now. And once tests pass s/he is guaranteed that s/he
is done with that specific change.
> So, the decisions about what to test and when to test it are
> handled "coordinated" without requiring developer's and
> testers to work in lockstep. Each library can be developed
> independently at its own pace.
Provided the queue doesn't grow to much. But then that would only mean
that testing resources are insufficient, and there's very little that
can be done about that apart from adding some other.
> I have concluded that breaking interfaces is a bad thing for users.
> It is a breach of trust between the library developer and library
> user. I presumes that users have nothing else to do but constantly
> tweak their own code to keep up with the libraries changes. This
> defeats the whole purpose of using a library in the first place.
> Library developers who do this will lose "customers". We have
> already seen examples of this. Having said that, boost library
> authors have been pretty good about not breaking interfaces
> so I don't think this will be a huge problem in practice.
I understand your feelings, although one could say that designing
interfaces in view of standardization is one of Boost's goals. The Boost
libraries are experimental, in a way.
> User code is already written and running. Suppose there are 1000
> users of the serialization library. Suppose I were to make a change
> for 1.34 that would require all those users to investigate their code
> and tweak it because I made a change? Do you really think that
> would be OK?
Not unless there was a lot to be gained by the change. And even then
what is a lot for someone is likely to be totally irrelevant for someone
>> I don't think users would appreciate the introduction of duplicated
>> functionality in family of libraries that, rightly or wrongly, is
>> perceived as a mostly coherent whole.
> Now that is the central question. "mostly coherent whole" highlights
> the issue. I would guess that when boost started out, the "model"
> that was envisioned was STL which is a very coherent whole.
> I think experience has shown that such a vision is a chimera and
> no amount of work will make such a vision reality.
> The next best thing (actually a better thing) - is a large set
> of decoupled libraries which have stable interfaces. Note
> the by "decoupled" I don't mean that a library should not
> depend upon another library but rather it should depend
> only upon its document interface.
Oh, absolutely! Common functionality across libraries should always
emerge in the form of, possibly small, additional libraries. There
shouldn't be a common 'detail' directory.
> The best thing that boost - and only boost - can do is to use its
> review process to promote/enforce.
> a) conceptional integrity - libaries which do one thing at a time
> without mixing up bunch of orthogonal functionality.
> b) well defined and well documented interfaces.
> c) quality implementation
> d) quality documentation
> library "unit testing" against the released library enhances these
>>>> In my opinion flexibility stems from the fact that with a much
>>>> shorter release cycle skipping one is not going to be such a big
>>>> deal, so developers will be faced with reasonable alternatives. For
>>>> that to happen each cycle must be managed very rigorously.
>>> That's whats causing the current difficulty. Working harder at it
>>> will just make it worse.
>> This is where we disagree. I keep thinking that if self discipline
>> were enough, there wouldn't be problems right now.
> I agree - its not about self discipline. Its not that people aren't
> working hard enough. As I said, working harder won't help.
> Its that we're doing the wrong thing.
I still think I have to see it working to be completely convinced, but
I'd welcome being proved wrong :-)
My only remaining question - not specifically to you, Robert - is how is
this whole thing started?
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk