|
Boost : |
From: Paul Giaccone (paulg_at_[hidden])
Date: 2006-02-02 10:15:16
Edward Diener wrote:
>Paul Giaccone wrote:
>
>
>>There is a thread on the Boost-users mailing list at the moment asking
>>what users needed to know when they got started with Boost.
>>
>>One of the points raised is that, while pretty much all users of Boost
>>think it is great, they didn't know when they started using it why it
>>was so great and why it would be to their advantage to use it. One of
>>the reasons for this is that the front page of the website does not
>>really sell the product.
>>
>>I agreed with this point. Here's a summary of my posting:
>>
>>"What the site needs, in my view, on the front page is some sort of
>>material selling Boost. Why was Boost set up in the first place?
>>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.
>>
>>"Essentially, Boost needs to sell itself as something that no C++
>>programmer would want to be without. 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. 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."
>>
>>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.
>>
>>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?
>>
>>Keep up the excellent work.
>>
>>Paul Giaccone
>>
>>"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
>>
>>
>
>deallocate
>
>
>
>>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."
>>
>>"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."
>>
>>
>
>,and more,
>
>
Yes, I had "all of these problems and more" in there in an earlier
edit. That sounds good.
>
>
>>"In standard C++, handling multiple command-line arguments usually
>>requires the user to write a bespoke
>>
>>
>
>bespoke ?
>
>
>
It means "custom-made", which might be a better term. The parser is
bespoke because the user has to write one specifically for the job in
hand that is not reusable.
>>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."
>>
>>[...]
>>
>It would be better if each library had a generalized explanation of its
>advantages similar to what you have written above, with possible links
>from the main Boost page, than just a number of blurbs for a number of
>different libraries on the main page.
>
>
>
This is intentional. The idea is to give people a flavour of what Boost
can do for users and what they would gain from using it, which the
homepage currently does not do. This would not be the place for an
introduction to all of the libraries - a potential user can find those
by digging deeper into the website. Of course, there could be a
paragraph like the ones above for each of the libraries at the start of
each section (in http://boost.org/doc/html/*.html) to show the
interested user what each library has to offer.
Paul
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk