Boost logo

Boost :

From: Martin Wille (mw8329_at_[hidden])
Date: 2006-02-02 17:13:43


Paul Giaccone wrote:

[...]

What you wrote is probably a result of enthusiasm. However, I have to
object strongly to some parts of your message.

> "What the site needs, in my view, on the front page is some sort of
> material selling Boost.

This is nonsense. We don't need to "sell" Boost.

                              Why was Boost set up in the first place?

This information is on the front page in the first section.

> Because, in some areas, C++ is deficient, is difficult to use or expects
> too much of the programmer. Boost helps by providing what is useful but
> missing and takes a lot of the work out of C++ programming.

That's blah-blah. Every library is supposed to provide something that is
useful but missing and to take work out of programming.

> "Essentially, Boost needs to sell itself as something that no C++
> programmer would want to be without.

[stronger wording self-censored] This is nonsense. Boost does not need
to sell itself or to be sold by anyone. People are free to use Boost
libraries or not, at their own (or their boss') will.

                                    Think how the adman would write it:
> "C++ getting you down? Spending hours tracking down that memory leak?
> Then try Boost! It will change your life!" Well, maybe not, but
> something along these lines would certainly go a long way to showing why
> anyone should be using Boost.

Frankly, you seem to be an evangelist (in the worst sense of that word)
on a mission here. I strongly object to this attitude.

Anything like that on any Boost web page would strongly discourage
contributing to Boost, at least in my case.

                               At the moment, the front page tells me is
> that the libraries are free, portable, peer-reviewed and work well with
> the C++ standard library, but that doesn't tell me why it is to anyone's
> advantage to use them."

This is very essential and useful information, though. It names a lot of
advantages Boost has over many other libraries. Just consider the many
expensive and/or restrictively licensed, non-portable libraries of
questionable quality you have seen.

The front page also tells us that Boost libraries have been written with
standardization in mind and that standardization is in progress for
certain subset of Boost libraries. This already describes a very good
reason to delve into Boost.

The existing front page also tells us that Boost has a hassle-free
license, which certainly is also an advantage.

> David Abrahams of Boost Consulting, who started the thread, suggested
> that I write a paragraph for a selection of Boost libraries that did
> just this.

This is not a bad idea.

> Below is what I came up with, from my experience as a Boost user who has
> used the libraries mentioned. I think it would be helpful to both users
> and developers if this text or something similar could be included on
> the front page of boost.org or some other prominent place on the
> website. For myself, if I had seen something like this content on the
> front page, I would have rushed to download the libraries. What do you,
> as the developers, think of this proposal?

We discussed this earlier on this list. The tendency seemed to be
towards a separate page linked from the front page (at least in my
perception; we didn't vote).

The complete text you suggest is definitely way too much for the front page.

What do you think of teasers: if technically feasible, a box with a
single section describing the advantage of one Boost library could be
put on the front page. The library described would be selected randomly.
This would give the page a dynamic touch and it would also stimulate
curiosity. Similar things could be done for "Who uses Boost" and for
"What do people say about Boost".

> "Memory allocation on the heap in C++ requires the programmer to manage
> the memory, make sure that there is always at least one pointer to the
> memory and deallocating it at the right time. It is easy to forget to
> do this or to do it in the wrong place in the code, which causes memory
> leaks, or, worse, program crashes. Boost makes life easier for the
> programmer by providing various 'smart pointers' that automatically
> maintain memory allocated on the heap, deallocating it at the right time
> and requiring minimal intervention from the user."

Please, keep in mind that memory is, to some extent, easier to manage
than other resources. The smart pointers are extremely useful for
managing other types of resources, too.

Also, programmers are aware of memory management issues. I don't think
they need a long explanation.

> "A programmer wanting to read and write structured data (such as the
> member variables of a class) to file can run into a number of problems.
> How should the data be formatted when written to file? Do the read and
> write functions correspond exactly? If the structure of the data
> changes in future releases of the program, will it still possible to
> read files that were written using the old format? Are files written on
> one platform readable on another? How should pointers be handled?
> Boost provides a serialization library that manages all of these
> problems and more simply and elegantly."

The introduction is too long in this paragraph. Programmers usually know
about the difficulties of serialization. If they don't then they will
likely not understand the advantages of Boost.Serialization, anyway.

> "In standard C++, handling multiple command-line arguments usually
> requires the user to write a bespoke parser to read in and interpret
> these arguments and handle syntax errors, missing arguments, duplicated
> flags and the like. Boost's program_options library handles
> command-line arguments without fuss."

I don't like this wording. It seems to be addressed to programmers.
Programmers tend not to be interested in arguments like "handles
command-line arguments without fuss" presented without any technical
backing.

> "Writing user-defined input and output streams can be tricky. The Boost
> iostreams library gives the user easy access a range of useful
> functionality, including data encryption, compression in various
> standard formats, line-ending conversion and output in XML format."

How about:

"Boost.Iostreams simplifies the implementing of user-defined streams by
wrapping itself around compositions of simple user-defined classes that
model sources, sinks or filters of data. Boost.Iostreams also offers
ready to use classes for conversion of line-endings, filtering of
regular expressions, compression, dealing with native OS file handles,
and for other purposes."

Regards,
m
Send instant messages to your online friends http://au.messenger.yahoo.com


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk