Boost logo

Boost :

From: Orjan Westin (orjan.westin_at_[hidden])
Date: 2006-02-03 06:47:40


Paul Giaccone wrote:

Some comments from a boost newbie/C++ old hand here.

> Contrary to what some have said, Boost *does* need to be sold.

Well, that statement can mean a lot of things, but I believe you mean that
it is not, as currently presented, attractive to new-comers.

I hope you don't mean that it needs to be sold in an evangeligal manner. :-)

Since the stated aim is to establish "existing practice", that's probably
the best way of selling it, too.

> The
> website currently does little to inspire the new user to want to use
> it.

This is, for me at least, true.

> A few paragraphs like those I posted would draw the user in and
> have them downloading it in an instant.

But this isn't. You must tell me why and how Boost will help me. If I'm
told that "all cool developers use Boost" I'm likely to shrug and relish in
my lack of coolness.

> At the moment, I suspect that
> the keen user doesn't come to that realisation until they have browsed
> several pages, and the casually interested user will just not bother.

Yup. BTDTGTTS.

> You developed Boost because you want people to use it, so it makes a
> great deal of sense to tell them *why* they should use it, and not
> just how to.

Exactly.

Now, look at the main page of the website. There's an introduction which
establishes that Boost provides good libraries for C++ developers. Fine.
What next? Oh, "Getting started", that'll tell me how do use Boost, right?

Nope. Download from CVS? Prepare and build? What is this?

So that's the introductory guide, then. Download a 10+ meg file, unpack it,
build it (using a build system I've never seen before), and then I'm ready
to use Boost.

Ah, thanks, but no thanks. Even if I do follow the "Getting started"
document, I'm still not ready to use Boost, because I haven't got a clue
what I should use it for.

That's not "Getting started", that's "Download, configuration and
installation".

"Getting started" should tell me what the different libraries can offer me.
It should tell me how to make my applications and systems better by using
Boost. It should tell me what the design philosophies are.

The last part there is important, actually. There is a lot of really,
really clever stuff in Boost. It's obviously been written and refined by
very skilled developers, who think nothing of tackling metaprogramming and
lambda expressions.

And the average programmer, who barely uses anything but std::vector from
the STL, will think that "this is for really brainy guys, I'll never
understand it".

There is an inherent conflict in Boost documentation, since it has two
distinct target audiences.

On the one hand, it's often written in the precise and formal style of the
standard. This is understandable, as one of the stated aims is to extend
the standard library. Information can be omitted by simply referring to a
relevant section of the standard. But only a very small portion of C++
programmers know the standard by heart and can read that kind of prose
without problems. That's you, and the regulars at comp.lang.c++.moderated
and the standards committee.

The rest of us prefer to read Sutter and Myers, since they can explain it to
us in a way we can understand.

Why not try to make an "Exceptional and Effective Boost", with items like
"If you have pointers in your container, use indirect_iterator"?

A standard documentation format would be useful, too. And a consistent
content template:
Introduction (interface layout)
Requirements and usage guidelines
How-to examples
Reference
Specification (this is the formal part)
Design and implementation (optional)

Then you'd know what to expect, it would be easy to find your way around and
it would be easier for writers of new libraries, too.

Just my 2c.

Orjan


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