 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Guch Wu Guest
|
Posted: Fri May 05, 2006 9:21 am Post subject: Which libraries in Boost are mature enough to be used in rea |
|
|
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
|
Posted: Sat May 06, 2006 3:21 pm Post subject: Re: Which libraries in Boost are mature enough to be used in |
|
|
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
|
Posted: Sat May 06, 2006 4:21 pm Post subject: Re: Which libraries in Boost are mature enough to be used in |
|
|
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
|
Posted: Sat May 06, 2006 4:21 pm Post subject: Re: Which libraries in Boost are mature enough to be used in |
|
|
"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
|
Posted: Sat May 06, 2006 4:21 pm Post subject: Re: Which libraries in Boost are mature enough to be used in |
|
|
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
|
Posted: Sun May 07, 2006 1:21 pm Post subject: Re: Which libraries in Boost are mature enough to be used in |
|
|
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
|
Posted: Sun May 07, 2006 1:21 pm Post subject: Re: Which libraries in Boost are mature enough to be used in |
|
|
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
|
Posted: Sun May 07, 2006 1:21 pm Post subject: Re: Which libraries in Boost are mature enough to be used in |
|
|
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
|
Posted: Mon May 08, 2006 7:21 pm Post subject: Re: Which libraries in Boost are mature enough to be used in |
|
|
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
|
Posted: Mon May 08, 2006 8:21 pm Post subject: Re: Which libraries in Boost are mature enough to be used in |
|
|
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
|
Posted: Tue May 09, 2006 1:21 pm Post subject: Re: Which libraries in Boost are mature enough to be used in |
|
|
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
|
Posted: Tue May 09, 2006 1:21 pm Post subject: Re: Which libraries in Boost are mature enough to be used in |
|
|
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
|
Posted: Tue May 09, 2006 8:21 pm Post subject: Re: Which libraries in Boost are mature enough to be used in |
|
|
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
|
Posted: Wed May 10, 2006 12:21 am Post subject: Re: Which libraries in Boost are mature enough to be used in |
|
|
"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
|
Posted: Wed May 10, 2006 1:21 pm Post subject: Re: Which libraries in Boost are mature enough to be used in |
|
|
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 |
|
 |
|
|
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
|
|