[Boost-users] [Review] [ITL] ITL formal review results

1 view
Skip to first unread message

Hartmut Kaiser

unread,
Apr 18, 2010, 10:20:51 AM4/18/10
to bo...@lists.boost.org, boost...@lists.boost.org, boost-a...@lists.boost.org
Hi all,

The formal review of the Interval Template Library (ITL) written by Joachim
Faulhaber started February 18th and ended March 7th, 2010. We saw a lively
discussion resulting in 14 votes: 10 people voted unconditionally YES, 3
voted conditionally YES, and 1 reviewer voted NO.

The overwhelming majority of the votes was YES which reflects the overall
discussion and the general consensus of this library being worth to be
included into Boost.

Based on this result and the discussions we saw the Interval Template
Library is now formally accepted into Boost.


Detailed results
----------------

Pros:

Almost all reviewers highlighted the general usefulness of the library. The
more experience the reviewers had with the library in real world
applications the more they emphasized its usefulness. Here are some quotes:
- "ITL solved this problem for me, in a way that honestly freed me from
having to think about a lot of the unsavory low-level details."
- " Until now, we only used the library for intervals of date-times (coded
as integers), but I'm sure, that its usefulness goes far beyond."
- " Very useful. I mentioned two projects where the library would have
helped me if it had been into Boost earlier, and I'm considering rewriting
them such that the problems make use of the library, and simplify them in
that way."

The comments on the quality of the documentation are unanimous: "impressive
and quite complete", "I couldn't ask for more". It seemed to be generally
helpful to understand the concepts of the library and to get started. Some
people asked to add more simple quick-start examples to the documentation
and the distribution.

Overall, the library is mature and easy to use. All reviewers actually
utilizing the ITL library for real world use cases reported they were able
to start quickly and without problems.

All reviewers using ITL in real world applications stated that no
performance problems were encountered. This is important to note as the NO
vote was based on the current lack of a interval tree implementation, which
was considered to result in suboptimal performance for certain use cases.


Cons:

Some aspects of the design have been criticized: "OO-type design decisions",
"fat 'one size fits all'-interval class template", and "incomplete
extraction of global functions" are the major points of critique. These
points have real merit. In order to make the design and interface more
flexible and more durable these have to be rectified before the final
inclusion of the library into Boost's code base. Joachim already agreed to a
list of things to change addressing those problems.

For certain use cases, specifically for interval map of collections, the
current implementation has suboptimal complexity characteristics that leads
to O(n^2) space usage in the worst case. OTOH, for the majority of
applications of the library the worst case scenario seems to be (reportedly)
irrelevant. This issue has been discussed at length and Joachim plans to add
an implementation with a better worst case performance of the affected class
templates as later optimizations. This is not considered to be a
precondition to full inclusion into Boost's code base as it is not
anticipated to cause any interface changes.

Last but not least people suggested to change the name of the library as
having the word template in the name does not carry any useful information.
Joachim already agreed to this.

Regards Hartmut
Review Manager

---------------
Meet me at BoostCon
www.boostcon.com


_______________________________________________
Boost-users mailing list
Boost...@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users

--
You received this message because you are subscribed to the Google Groups "BOOST Archives" group.
To post to this group, send email to boost...@googlegroups.com.
To unsubscribe from this group, send email to boost-list+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/boost-list?hl=en.

Joachim Faulhaber

unread,
Apr 19, 2010, 9:13:43 AM4/19/10
to boost...@lists.boost.org
Hi Hartmut, list,

2010/4/18 Hartmut Kaiser <hartmut...@gmail.com>:
Thank you, Hartmut, for summarizing the review and declaring the
results. I am of course happy to hear that my library of interval
containers is now accepted.

Concerning the review itself, I'd like to say that it was a very
valuable experience for me. I definitely learned a lot during the
process. So I'd like to thank all the reviewers and other participants
in the discussion for taking so much time to examine my project and to
share their knowledge and assessments.

I'd like to emphasize two points:

(1) For me as contributor is has been very rewarding to see, that my
library has found quite a few users who not only use the ITL in real
world applications but also confirm the usefulness of its concepts and
patterns (e.g. aggregate on overlap), that simplify writing programs
for problems that reoccur in a variety of problem domains. It was this
basic feeling of usefulness that made me undertake the journey of
boostifying, refactoring, documenting, polishing and submitting my
code, which was much more work than I initially expected. But reading
those reviews made me feel that it was worth the effort. So special
thanks to my "real world"- users among the reviewers: Peter Wuttke,
Eric Jonas, Michael Caisse and Jeff Flinn.

(2) A review on the boost list is probably a challenge for most
contributors. The important part is to encounter once own limitations
and blind spots. Because these are the fields where one can learn
most. We find these kinds of (at first) mostly unpleasant information
within a boost review, when fellow developers examine the project
closely and share their view on its flaws and problems. I have learned
very much from that and I am currently really having fun applying
those improvements to the library. So special thanks for sharing
critique and objections to Phil Endecott, Luke Simonson, Jeff Flinn,
John Reid and Barend Gehrels.

And last but not least, I'd like to thank Rob Stewart who gave me feed
back about some lingual pitfalls and oddities offlist. Very nice and
helpful :)

I have reworked the design on the interval concept already. I hope to
be able to complete the discussed changes and improvements, as
summarized by Hartmut above, within a few weeks after BoostCon2010.

Cheers
Joachim
Reply all
Reply to author
Forward
0 new messages