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