C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Which libraries in Boost are mature enough to be used in rea
Goto page 1, 2, 3  Next
 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ Language (Moderated)
View previous topic :: View next topic  
Author Message
Guch Wu
Guest





PostPosted: Fri May 05, 2006 9:21 am    Post subject: Which libraries in Boost are mature enough to be used in rea Reply with quote



Boost has many terrific libraries.
But I want to know whether they are ready for using in real projects.
Which of them are mature enough, or just only in progress?


[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
Back to top
blwy10
Guest





PostPosted: Sat May 06, 2006 3:21 pm    Post subject: Re: Which libraries in Boost are mature enough to be used in Reply with quote



None of the Boost libraries are really in progress, and all of them in
fact are already production quality.

Before a library can enter Boost, it needs to be extensively peer
reviewed by everyone until the review manager is satisified [IIRC],
essentially, any library that is entered into Boost is good enough for
use.

But there may be some libraries that you may never need to use, for
example maybe MPL (template metaprogramming). But you're not forced to
use them anyway :P

In essence, Boost is a very mature C++ library whose components are
well written and well designed. You should use it as far as possible,
though be prepared to fork out 2 gigs of HD space for it.

Just my two cents

Benjamin Lau


[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
Back to top
Raider
Guest





PostPosted: Sat May 06, 2006 4:21 pm    Post subject: Re: Which libraries in Boost are mature enough to be used in Reply with quote



Guch Wu wrote:
Quote:
Boost has many terrific libraries.
But I want to know whether they are ready for using in real projects.
Which of them are mature enough, or just only in progress?

I think all libraries RELEASED in Boost are complete enough to use in
the real projects. Boost "staff" reviews each library before it will be
included in Boost release. They reject libraries if they are incomplete.

[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
Back to top
David Abrahams
Guest





PostPosted: Sat May 06, 2006 4:21 pm    Post subject: Re: Which libraries in Boost are mature enough to be used in Reply with quote

"Guch Wu" <guchwu (AT) gmail (DOT) com> writes:

Quote:
Boost has many terrific libraries.
But I want to know whether they are ready for using in real projects.
Which of them are mature enough, or just only in progress?

Boost Consulting has clients that all produce real applications, and,
without exception, they all use Boost in their products. There's
also: http://boost.org/doc/html/who_s_using_boost_.html

HTH,

--
Dave Abrahams
Boost Consulting
www.boost-consulting.com

[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
Back to top
Wil Evers
Guest





PostPosted: Sat May 06, 2006 4:21 pm    Post subject: Re: Which libraries in Boost are mature enough to be used in Reply with quote

Guch Wu wrote:

Quote:
Boost has many terrific libraries.
But I want to know whether they are ready for using in real projects.
Which of them are mature enough, or just only in progress?

Good question. While Boost contains some really great libraries, other
parts of it have serious problems.

At the place where I work, we used to reach for Boost for almost anything
not (yet) available in the standard library. We don't do that any more,
because in quite a few cases, we ran into real portability and API
stability issues.

Instead, we now evaluate each Boost library separately before using it in
production code. For some of the Boost libraries, we've actually decided
to phase out their use at the first available opportunity. These are:

filesystem
program_options
serialization
test

Hope this helps,

- Wil


[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
Back to top
johnchx2@yahoo.com
Guest





PostPosted: Sun May 07, 2006 1:21 pm    Post subject: Re: Which libraries in Boost are mature enough to be used in Reply with quote

Wil Evers wrote:

Quote:
Instead, we now evaluate each Boost library separately before using it in
production code. For some of the Boost libraries, we've actually decided
to phase out their use at the first available opportunity. These are:

filesystem
program_options
serialization
test

I'd be very curious to hear more detail about why this was decided.
What sorts of problems did you run into?


[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
Back to top
David Abrahams
Guest





PostPosted: Sun May 07, 2006 1:21 pm    Post subject: Re: Which libraries in Boost are mature enough to be used in Reply with quote

Wil Evers <bouncer (AT) dev (DOT) null> writes:

Quote:
Guch Wu wrote:

Boost has many terrific libraries.
But I want to know whether they are ready for using in real projects.
Which of them are mature enough, or just only in progress?

Good question. While Boost contains some really great libraries, other
parts of it have serious problems.

What constitutes a "serious problem" depends on what your needs are.
I'd appreciate it if you could add some detail.

Quote:
At the place where I work, we used to reach for Boost for almost anything
not (yet) available in the standard library. We don't do that any more,
because in quite a few cases, we ran into real portability and API
stability issues.

Could you be more specific, please?

"Portability issues" could mean a lot of things, some of which might
mean nothing to the OP. For example, if your "portability issue" was
that some Boost library didn't work on a particular pre-standard (or
highly nonconformant) C++ compiler, it might not matter at all to
someone not interested in targeting such compilers.

I'd also like to hear more about what you're calling API stability
issues.

Quote:
Instead, we now evaluate each Boost library separately before using it in
production code. For some of the Boost libraries, we've actually decided
to phase out their use at the first available opportunity. These are:

filesystem
program_options
serialization
test

Because of portability and API stability issues, or for other reasons?

--
Dave Abrahams
Boost Consulting
www.boost-consulting.com

[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
Back to top
Le Chaud Lapin
Guest





PostPosted: Sun May 07, 2006 1:21 pm    Post subject: Re: Which libraries in Boost are mature enough to be used in Reply with quote

Wil Evers wrote:
Quote:
Instead, we now evaluate each Boost library separately before using it in
production code. For some of the Boost libraries, we've actually decided
to phase out their use at the first available opportunity. These are:

filesystem
program_options
serialization
test

I am extremely curious to know what was it that made you decide to
phase out the serialization library.

-Le Chaud Lapin-


[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
Back to top
Wil Evers
Guest





PostPosted: Mon May 08, 2006 7:21 pm    Post subject: Re: Which libraries in Boost are mature enough to be used in Reply with quote

David Abrahams wrote:

Quote:
Wil Evers <bouncer (AT) dev (DOT) null> writes:

At the place where I work, we used to reach for Boost for almost
anything
not (yet) available in the standard library. We don't do that any
more,
because in quite a few cases, we ran into real portability and API
stability issues.

Could you be more specific, please?

"Portability issues" could mean a lot of things, some of which might
mean nothing to the OP. For example, if your "portability issue" was
that some Boost library didn't work on a particular pre-standard (or
highly nonconformant) C++ compiler, it might not matter at all to
someone not interested in targeting such compilers.

Absolutely. For all our target platforms, we're either using vc-7.1, or
something between gcc-3.3.* and gcc-4.0.*. In other words, the target
compiler should not be a problem.

Quote:
I'd also like to hear more about what you're calling API stability
issues.

Well, that's easy. Either a particular call is no longer available in
the
next official Boost release, or its semantics have changed.

Quote:
Instead, we now evaluate each Boost library separately before
using it in
production code. For some of the Boost libraries, we've actually
decided
to phase out their use at the first available opportunity. These
are:

filesystem
program_options
serialization
test

Because of portability and API stability issues, or for other reasons?

I'll be specific (all targeted at the official boost-1.33.1 release) :

1) filesystem:

- Major problems interfacing with the native API on one our targets (the
Alpha); unmaintainable Boost source, so we couldn't implement any
reasonable workaround
- Uses inherently thread-unsafe function-local statics

2) program_options:

- Some functions in the public API, used in the examples in the
official
documentation, dropped without any explanation

3) serialization

- A header race; doesn't tolerate including <boost/shared_ptr.hpp>
before
<boost/serialization/shared_ptr.hpp>
- Yet another header race involving headers in both boost/archive and
boost/serialization; details on request

4) test (please don't get me started)

- Way too intimate with its developer's apparently native platform
(WIN32)
for any reasonable degree of portability (takes over main(), maps OS
signals to C++ exceptions, continues to run after failing assert()s,
etc.)
- Lots of construction/destruction ordering issues - major changes here
between boost-1.32 and boost-1.33.1

Regards,

- Wil


[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
Back to top
James Kanze
Guest





PostPosted: Mon May 08, 2006 8:21 pm    Post subject: Re: Which libraries in Boost are mature enough to be used in Reply with quote

Le Chaud Lapin wrote:
Quote:
Wil Evers wrote:
Instead, we now evaluate each Boost library separately before
using it in production code. For some of the Boost
libraries, we've actually decided to phase out their use at
the first available opportunity. These are:

filesystem
program_options
serialization
test

I am extremely curious to know what was it that made you
decide to phase out the serialization library.

I'm interested in the reasons concerning all of them, but
especially filesystem -- I think this one is a candidate for
standardization, and if there are problems using it, it
shouldn't be standardized.

--
James Kanze kanze.james (AT) neuf (DOT) fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34

[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
Back to top
David Abrahams
Guest





PostPosted: Tue May 09, 2006 1:21 pm    Post subject: Re: Which libraries in Boost are mature enough to be used in Reply with quote

Wil Evers <bouncer (AT) dev (DOT) null> writes:

Quote:
Instead, we now evaluate each Boost library separately before
using it in
production code. For some of the Boost libraries, we've actually
decided
to phase out their use at the first available opportunity. These
are:

filesystem
program_options
serialization
test

Because of portability and API stability issues, or for other reasons?

I'll be specific (all targeted at the official boost-1.33.1 release) :

Wil, thanks for your detailed commentary; I've taken it back to the
Boost list to see if anything can be done. For what it's worth, I've
got a fix in the pipeline for at least one of the serialization
library's header ordering issues, although I can't tell if that's the
same problem you were having.

--
Dave Abrahams
Boost Consulting
www.boost-consulting.com

[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
Back to top
Le Chaud Lapin
Guest





PostPosted: Tue May 09, 2006 1:21 pm    Post subject: Re: Which libraries in Boost are mature enough to be used in Reply with quote

James Kanze wrote:
Quote:
Le Chaud Lapin wrote:
Wil Evers wrote:
filesystem
program_options
serialization
test

I am extremely curious to know what was it that made you
decide to phase out the serialization library.

I'm interested in the reasons concerning all of them, but
especially filesystem -- I think this one is a candidate for
standardization, and if there are problems using it, it
shouldn't be standardized.

True. IMO, one major reason for rejection is that the model is not
universal. In othe words, the creator of the libary has to invest
considerable thought into examining just what is being model before
marking the library. So one could say that, if you have managed to
create a completely portable library that seems to satisfy all, then
you have coincidentally devised a steady-state model for the domain
that you are making a library for. In serialization, I noticed that
Boost, IMO, came very close, but then they started that versioning
stuff to compensate for changes in the declaration of classes...

-Le Chaud Lapin-


[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
Back to top
Wil Evers
Guest





PostPosted: Tue May 09, 2006 8:21 pm    Post subject: Re: Which libraries in Boost are mature enough to be used in Reply with quote

James Kanze wrote:

Quote:
Le Chaud Lapin wrote:
Wil Evers wrote:

For some of the Boost
libraries, we've actually decided to phase out their use at
the first available opportunity. These are:

filesystem
program_options
serialization
test

I am extremely curious to know what was it that made you
decide to phase out the serialization library.

I'm interested in the reasons concerning all of them, but
especially filesystem -- I think this one is a candidate for
standardization, and if there are problems using it, it
shouldn't be standardized.

Please see my reply to David Abrahams; in the case of filesystem, the
problem is not in its interface, but in its implementation.

- Wil


[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
Back to top
David Abrahams
Guest





PostPosted: Wed May 10, 2006 12:21 am    Post subject: Re: Which libraries in Boost are mature enough to be used in Reply with quote

"Le Chaud Lapin" <unoriginal_username (AT) yahoo (DOT) com> writes:

Quote:
True. IMO, one major reason for rejection is that the model is not
universal. In othe words, the creator of the libary has to invest
considerable thought into examining just what is being model before
marking the library.

Wait; you're suggesting that libraries should be created without a
careful examination of their problem domain? A good library provides
abstractions. Abstractions are normally generalized _from_ something.
I can't imagine approaching any library design without looking very
carefully at the domain being modeled could ever lead to success.

Quote:
So one could say that, if you have managed to create a completely
portable library that seems to satisfy all, then you have
coincidentally devised a steady-state model for the domain that you
are making a library for.

Isn't that a conundrum for anyone building abstractions? STL probably
seemed to its creators to be a framework that could handle the domain
of linear sequence processing, but of course despite being a great set
of abstractions, it constrains the domain. For example, STL doesn't
handle heterogeneous sequences (tuples), and is really inefficient for
dealing with logically-linear-but-pysically-hierarchical data
structures like std::deque.

Quote:
In serialization, I noticed that Boost, IMO, came very close, but
then they

Robert Ramey is the author of Boost.Serialization.

Quote:
started that versioning stuff to compensate for changes in
the declaration of classes...

.....and how does the introduction of versioning "create a steady-state
model" of the serialization domain? Do you honestly believe that not
adding versioning would have made a difference in that regard?

--
Dave Abrahams
Boost Consulting
www.boost-consulting.com

[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
Back to top
Bjorn Reese
Guest





PostPosted: Wed May 10, 2006 1:21 pm    Post subject: Re: Which libraries in Boost are mature enough to be used in Reply with quote

James Kanze wrote:

Quote:
I'm interested in the reasons concerning all of them, but
especially filesystem -- I think this one is a candidate for
standardization, and if there are problems using it, it
shouldn't be standardized.

While I have been pleased with boost::filesystem in general, the default
name_check for boost::filesystem::path is a nuisance.

In my case I had to create a non-existent directory whose path is
composed of several parts, some of which are calculated. I thought
that boost::filesystem::path only consisted of string manipulation,
not accessing the filesystem, so I was puzzled that it kept throwing
exceptions. Finally I discovered that I needed to change the checker
to no_check.

I spent most of a day fiddling with the above, so I would argue that
the choice of the default name_check causes the learning curve of
boost::filesystem::path to be higher than necessary.

--
mail1dotstofanetdotdk

[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]
Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ Language (Moderated) All times are GMT
Goto page 1, 2, 3  Next
Page 1 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.