|
Boost : |
From: Robert Ramey (ramey_at_[hidden])
Date: 2006-10-10 17:46:10
Jeff Garland wrote:
> From my perspective it's clear that C++ is losing ground to other
> languages because the lack of 'standard libraries' provided.
<snip>
I'm concerned that the lack of "standard libraries" is in part
attributable to features of the language which make it hard
to "build once - build/run anywhere".
> And sometimes b/c of customer requirements Boost isn't cheaper. As
> someone already mentioned, in the US defense industry, where C++ is
> used extensively, there are requirements about foreign sources that
> can create issues for using Boost. Each line of code needs to be
> inspected, etc, etc. If it's in the standard and from someone like
> MSFT/IBM then this has likely already been done. So that saves time
> and money.
maybe true - but I think that's a minority of cases.
I'm struck by Ada - A good language I understand with HUGE DOD
backing.- but overwhelmed by the spread of C. The latter was due in
my opinion to the fact that it was much easier to port to
new platforms.
I'm thinking we're dismissing a real problem as something that
we have no control or influence over.
Modern C++ exploits newer features of C++ (i.e. templates) in such
as way that it requires either highly conformant compilers
and/or workarounds for each/any compiler. This slows
down the development and spread of libraries.
As an example take just one feature - two phase lookup.
Its in the standard - but apparently not every compiler vendor is on
board that its a good idea. So many libraries must
effectively have two versions (defined by #if/#endif).
Mix in a couple more features like this - and its can
be a big hassle to get a complicated library ported
from one implementation to another
Now add concepts. Perhaps a worthy idea. But
what about the side effects? presumably it will
not be included in all implementations simultaneously
and if history is any guide - it will be years -if ever-
its commonly supported. This will add yet one
more variable to the mix that has to be contended
with to make libraries portable.
My view is that the adding an interface to the
"standard" and declaring implementations that don't
include a corresponding implementation "non-conformant"
isn't as much help in promoting C++ as it would
first appear. It doesn't help the library base
grow any faster.
To summarize, I think some of the inate features of
the language make it harder to write libraries for than
other languages and this makes the language less
attractive than some newer alternatives.
Robert Ramey
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk