Time to do a Man's Work ??
David B. Held
dheld at codelogicconsulting.com
Sat Apr 14 12:30:41 PDT 2007
James Dennett wrote:
> [...]
> If we take the rules of one moderated forum with which
> I am familiar, there are no limits on how forceful
> criticisms of designs or implementations can be -- but
> no personal attacks are permitted. Occasionally
> something slips past the moderators that others view
> as a personal attack, and that usually wastes some
> cycles when it does occur. But rarely is there much
> disruption from discussion of technical matters, even
> when it's wrong/aggressive/discouraging. Even the
> very best programmers make many mistakes, and they
> get to *be* the very best by being open to finding
> those mistakes and learning from them.
> [...]
Yup. I learned much of what I know about C++ from participating in
Boost, and I will tell you something...Boost contributors can be the
most unforgiving software critics you ever met. Criticisms can be
brutal, scathing, and downright heartless, but they are always about the
technical merits of libraries being proposed. At the end of the day,
most libraries survive a crucible of fire, and only the best survive.
The attitude of the reviewers, however, is not one of mere jockeying for
position, but rather, the pride in the construction of a quality
library, and the recognition that Boost has a reputation for quality
that cannot be compromised by soft criticism.
The experts (and Boost can undeniably be said to have many, many experts
among its members) sometimes disagree on the best way to proceed, and
have vigorous debates that pull this way and that (far more extreme than
the technical debates I've seen here), and yet there is a mutual respect
that keeps the arguments technical. I've never seen a flame war break
out on the Boost newsgroups/mailing lists, and it is completely
unmoderated (I mean, there are people designated as "moderators", but as
far as I know, posts to the list/group are not individually moderated).
I think the Boost community deserves a lot of respect for being able
to maintain that kind of atmosphere.
I remember Robert Ramey tried to submit his serialization library many,
many times, which is somewhat unusual because most libraries get a
thumbs up or a thumbs down, and many authors abandon a library that gets
a thumbs down. However, on each iteration it got better and better.
Understand that Robert had already spent considerable time and effort
creating what he thought was a Boost-quality submission on his first try
(which is a high bar to meet, believe you me). Although the community
kept saying: "Not this time", they also said: "Please keep working on
it." To get an idea of how many times he revised it, take a look here:
http://www.boost.org/libs/serialization/doc/index.html. And note that
it is currently a Boost library.
Nobody thought that Robert Ramey was an idiot for submitting a library
10x. Nobody thought he was incompetent because there were so many
criticisms of his library. Everyone recognized that he had worked very,
very hard on it, and that his work was of good quality. The problem was
simply that it could be better. As far as I know, Robert never took
criticism of his library personally; and even though he was disappointed
every time it was rejected, he understood and agreed with the reasons,
and went back to the drawing board to make it work. The reviewers did
not put on kid-gloves. They laid into the library with guns blazing.
It would have been easy for a lesser author to give up and move on to
something else. But in the end, we have a Boost-quality library that
provides a pretty fundamental service. That's what I think of as The
Boost Way, and having seen it in action many, many times, I have come to
believe that it's a pretty sound methodology.
I think it would be great if D had a set of libraries that were
certified in this way, by the community of D experts. One of the
biggest benefits of Boost, as I said before, is that it taught me a
*lot* about the language. I think such a meta-library project would
provide a similar service for D. Another thing that Boost does is it
highlights weaknesses and deficiencies in the language itself. And then
there is the fact that many Boost libraries eventually get added to the
C++ Standard Library. Most people have confidence in the Boost
extensions because they have some idea of how this particular sausage is
made. But if they really saw how bloody it can be, it would probably
turn their stomachs.
Is D ready for something like a Boost effort? I don't know. Like I
implied, it takes more than mere technical merit to form a community
like Boost. But I think it would be great if we asked ourselves if we
were ready for something like this, and did what it takes to make it
happen. I think this is something of what Walter was suggesting when it
comes to "certified" libraries in DSource. "Certified" means "peer
reviewed *and approved* by experts", and should give the same type of
quality guarantee that "Boost Library" does. Just something to think
about...
Dave
More information about the Digitalmars-d
mailing list