Subject: Re: [boost] [Review:Algorithms] My review
From: Brent Spillner (spillner_at_[hidden])
Date: 2011-10-03 21:14:21
Also late! My apologies.
On Mon, 03 Oct 2011 00:46 Phil Endecott wrote:
>implementation. Furthermore, the amount of discussion of a proposal
>seems to be in inverse proportion to its complexity! To avoid getting
...which probably tells us more about the number of people who take
the time to fully understand more complex submissions than it does
about anything else...
>bogged down in endless discussions of trivia we should set a lower
>bound on the complexity of submissions, and these functions are below
I disagree... these algorithms are certainly trivial, but also
frequently used by most programmers. A high-quality implementation
has the potential to eliminate (well, reduce) the need for every C++
programmer to maintain medium-quality versions in a personal toolkit,
saving a tremendous number of aggregate man-hours (initial
development, maintenance, and reading others' versions as a possible
source of defects in unfamiliar code) worldwide. Note that the
original submission has already been substantially improved based on
reviewer feedback--- how many of the tens of thousands of one-off
versions out there have the same issues, or worse?
Anyway, my own review:
> * What is your evaluation of the design?
Overall design is fine--- these algorithms are simple and should be
kept so. Like several other reviewers, I believe some of the function
and header names are suboptimal (increasing() should be
nondecreasing(), any.hpp should be any_of.hpp, etc.), and as much as I
abhor a boat shed argument I do honestly believe that they be
reevaluated before release.
There does seem to be a lot of redundant code that could be refactored
out of the individual search algorithms, but that's an internal issue.
> * What is your evaluation of the implementation?
Adequate. I filed several issues on GitHub, and others contributed
more. Marshall has been extremely responsive, and I think it's clear
that the library will be top-notch before release.
> * What is your evaluation of the documentation?
Incomplete, but what library is in version 1? Certainly adequate for release.
> * What is your evaluation of the potential usefulness of the library?
Quite. Actually, I think the search algorithms are hindered a bit in
this respect by their documentation (strengths and weaknesses in given
situations, which to use, caveats, etc.), but that's been beaten to
death here and on GitHub and is already being remedied by Marshall.
> * Did you try to use the library? With what compiler? Did
> you have any problems?
> * How much effort did you put into your evaluation? A glance?
> A quick reading? In-depth study?
I carefully read the code and skimmed the docs, and logged my detailed
comments as GitHub issues (almost all of which have already been
> * Are you knowledgeable about the problem domain?
Fairly, although I'm not sure I'd ever seen the BMH search before.
In summary, I think Algorithms should certainly be accepted, and like
Phil and many other reviewers I think it's a good framework for other
small submissions that would be useful to the community at large but
don't justify a separate library.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk