$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] Updating the Boost Review Process Was:  [GGL] Bost.Polygon (GTL) vs GGL - rationale
From: John Phillips (phillips_at_[hidden])
Date: 2009-11-17 12:13:01
Jose wrote:
> On Mon, Nov 16, 2009 at 8:30 PM, John Phillips
> <phillips_at_[hidden]> wrote:
>> ..
> 
> Just to make it clear, my proposal is not based on using votes. The
> idea is that if there is clearly two different overall opinions, and
> the NOs are not going to be reversed by the changes anyway, then the
> reasoning for the acceptance has to be well justified OR the judgement
> of the review manager should be questioned. Otherwise, you're ignoring
> the No group!
   Look at the Announcement that Polygon was accepted. Fernando 
addresses the specific complaints of the "No" group one at a time. That 
is not ignoring them, in my opinion.
> 
> With broad libraries covering different application domains, it seems
> obvious that the above might happen, and it's not a question of one vs
> the other but of broadening the purpose of the library (if technically
> possible!)
   The problem with broadening the purpose is that sometimes it is far 
harder to do than is obvious before trying. (Think about how many bad 
cross platform GUI libraries have been written.) There are at least two 
valid ways to accomplish the goal. The first is to work from the top 
down - design for the broad purpose from the beginning and fit the 
pieces in. The second is to work from the bottom up - make libraries 
that are well suited to the pieces while only worrying about having 
compatible concepts, then when the pieces work well look to refactor and 
combine. In the Polygon review, and now in the GGL review there has been 
animated discussion of what those compatible concepts should be, so they 
are following the second route.
> 
> The earlier boost libraries were more fundamental and broadly useful
> but some of the newer libraries are specific to application domains,
> not to all boost/c++ users.
   Take a look at the Review Schedule page. Libraries like uBLAS and 
Special Functions that are tied closely to some specific domains have 
been around for many years. Now look at the queue. Libraries like the 
Logging proposals could be useful in many different domains. It has 
always been a mix.
> 
>> ..
> 
> Well, maybe you made a mistake! If not, then please take action and
> FIX the situation. Also, the reviewer has to acknowledge that he has
> time to give a timely decision and engage all reviewers. This takes a
> lot of time !!
   I have not excluded the possibility that we made a mistake, but I 
have seen no proof that we did. If no mistakes were made, then there is 
nothing to fix (whether or not it is shouted).
   I am quite familiar with the time requirements of managing a Boost 
review. I've done it a few times. Though this is Fernando's first time 
managing, he has successfully submitted a couple of libraries and knows 
the review process as a developer well. However, since he lives in the 
real world where work requirements come up while you are doing other 
things. As a volunteer organization, we just have to accept that this 
happens.
> 
> If you look at the specific case, the reviewer is very experienced and
> has given lots of advice to one author, as acknowledged in one
> boostcon paper but the other application domain has been mostly
> ignored. From a generic library viewpoint you need to try to reconcile
> views that are from different applications domains, you can not just
> ignore half of the potential users!
   A frequent piece of design advice for generic libraries is to 
understand a more limited case first, then expand from there. Polygon 
and GGL are both limited in some ways, but both are broad enough to be 
useful in real world code. (Both have established user bases, after 
all.) I do not know the technical details of the problem domain well 
enough to know how hard merging all the different computational geometry 
sub-domains into one generic library will be, but I would expect it to 
be very hard. In such a case, it is not wise to let the perfect become 
the enemy of the good.
> 
>>  There has been talk of parallel reviews of competing libraries. This sounds
>> like a decent idea on the surface but it has been tried and it did not go
>> well. In the review of the two Thread Pool libraries, I do not think anyone
>> involved was happy with how things ran. We discussed it as a community in
>> advance and decided to review them together, but the reality was just not
>> satisfying.
   My mistake, here. It was the competing Futures libraries, not Thread 
Pool. Not central, but still wrong.
> 
> Nobody is suggesting more competition. I think there are times only
> library proposal doesn't cut the mustard and the submitter realizes
> this and abandons the proposal.
> 
> A different case, the current case, is that different proposals are
> overlapping, competition has been fostered and you actually want
> someone experienced to guide the cooperation to get a single library.
   The Futures review was not a case of anyone abandoning anything. 
Anthony submitted an implementation of the proposal for addition to the 
standard library. He did not want to change or merge it because then it 
would not implement the proposal. Oliver submitted what he believed was 
a better library than the standard library proposal, and so also didn't 
want to lose what he considered important extra features. One stated 
goal of the joint review was to guide cooperation and a possible merger. 
However, we found that the review process does not do this job well.
> 
>> ...
> 
> As stated above, some libraries tackle fundamental problems and
> multiple approaches make sense. But imagine multiple BGL-related
> libraries, multiple asio-related libraries, multiple GIL-related
> libraries, multiple geometry libraries .. I think that would be a huge
> mess and as a user I would be discouraged!
   And, if they don't each offer something important and useful that is 
not available other places, I would expect the Boost community to reject 
them. However, for different text parsing tasks we have a few different 
libraries in Boost. They coexist exactly because they provide different 
things for different use cases. The implication is that there is no one 
correct way to parse text in all circumstances, but instead there are 
ways that are well suited to different tasks.
   I do not know if an analogous situation is true for computational 
geometry, but I am not willing to exclude the possibility out of hand. 
Instead, I want to look at libraries and see what they have to offer in 
the context of what is already available.
> 
>> ...
> 
> I don't have a clear opinion on this. It looks like the Wizard has the
> most control over the process and maybe should be acknowledged to take
> some decisions on behalf of the community. If nobody owns to problem,
> nobody comes up with a solution.
   The Wizards do make some decisions on behalf of the community, as do 
the people in the other named roles (such as the release team, the 
moderators, and others). However, in borderline cases the only way 
anyone can say that the wrong choice was made in a review is by having a 
deep grasp of the technical details. To say that this is the job of the 
Wizards is equivalent to saying that the Wizards must be people who have 
a deep grasp of the technical details for everything that appears in or 
is proposed for Boost. No such people exist, and I sure am not one.
   What is the other possibility?
   The Wizards monitor the review process to catch any egregious 
problems and try to solve them. This is already done, though we try to 
be as low profile about it as possible. When there is a subtle problem, 
the Wizards look at the presented technical details when they exist and 
request advice from experts if needed. In the absence of technical 
information, the Wizards engage in the conversation but have no basis 
for taking any action.
> 
> My main point is that boost has to make an effort to attract more
> libraries and make it easier for the new authors to get the libraies
> in (if the proposal makes sense!). Sometimes I find a great c++
> library and encourage the author to consider submitting it to Boost
> but they see the cost (docs, examples, ..) but don't see the benefits
> as clearly (and the benefits are there in terms of peer-review driven
> quality, ...).
   I agree that there are many libraries that would be good additions to 
Boost if they were willing to meet our quality standards. However, I 
don't see how to make that easier. Producing high quality code that is 
extensively tested, well documented, and provides instructive examples 
is just a darn lot of work. I would be against any proposal that tried 
to lower these standards to make it easier for new authors.
   We also have the problem that the flow of incoming libraries is 
already out pacing the flow of reviews. This is my candidate for the 
biggest problem in the review process. It is happening for a few 
reasons. One, we don't have enough qualified review managers 
volunteering. Two, since producing a review takes time and work, we 
can't schedule many reviews close together or the reviewer response 
drops a lot.
   This also affects scheduling parallel reviews for libraries that 
address the same domain, since the scaling for producing a good review 
is worse than linear in the number of libraries. Not only are there the 
issues of the individual review for each, but there are also comparisons 
and compatibility questions.
> 
> Also, it would be useful to know what libraries people think are
> needed in boost. This could guide what needs to get in, rather than
> reviewing only everything that is submitted. I think many are
> interested in geometry-related domains so a FIX to the current
> situation is important.
> 
> regards
   The old wiki had a section for new library requests. I don't know if 
the new one does, but you can check just as easily as I can. This might 
provide a nudge to a developer who was considering producing a Boost 
library (If the evidence of interest was already available.), but its 
not lie we can assign someone to making a specific library. That just 
isn't the way Boost is organized.
                        John
PS - If your goal in shouting FIX is to convince me of how important it 
is, you are failing. I am much more persuaded by reasoned arguments and 
technical details than by shouting.