
Paul Giaccone <paulg@cinesite.co.uk> writes:
David Abrahams wrote:
"Matt Doyle" <mdoyle@a-m-c.com> writes:
A potential new user needs a way to find out what exactly is in boost. Right now if I want to solve a particular problem and I don't know which library to use, I basically have to drill down through the list and read the overview for each one.
What would you propose as a better system?
The issue is this: the current documents say "Library X does Y", or, in functional notation, y = foo(x). If you know x, you can find y. Unfortunately, the new user knows y, and so needs x = bar(y), where bar() is the inverse of foo(). (What's more, the user doesn't even know that they need x = bar(y) because they don't know that Boost deals with y by providing bar(y) until they start hunting through the docs.)
A better system would be (in addition to what is already there, rather than as a replacement for it) to provide this inverse function in the docs, so, in addition to the alphabetical list at http://boost.org/libs/libraries.htm (which is foo()) there is a list corresponding to bar(), but with a little more detail.
That's what http://www.boost.org/libs/libraries.htm#Category is all about.
I am thinking of something along the lines of:
Standard C++: *Memory allocation on the heap*, which requires careful management by the user Boost: *Smart pointers*, which do not require this kind of management
(with the emboldened text or something similar to catch the user's eye)
Now, I know what you're thinking - come on then, walk the walk, contribute a list and we'll put it in the documentation.
Brilliant!
I would do this but I am only familiar with a handful of the libraries.
So look at their introductory abstracts. It's just a few clicks from here to there.
If this idea is taken on, it needs to be implemented by a person who is, or group of persons who between them are, familiar with all of the libraries.
You could do 90% of the work and ask for corrections. -- Dave Abrahams Boost Consulting www.boost-consulting.com