From: Nevin Liber (nliber_at_[hidden])
Date: 2005-05-25 23:20:11
On 25/05/05, David Bergman <davidb_at_[hidden]> wrote:
> David Abrahams wrote:
> > Oliver Kullmann <O.Kullmann_at_[hidden]> writes:
> > > But for these "millions of C++ users" Boost is not the right choice.
> > It should be.
Oliver was talking about those millions of C++ users that "see no benefit in
> smart pointers", "see MPL as black art" etc. Right, Oliver? I really hope
> that Boost will not try to fit the needs of those less experienced
> developers, since that will, IMHO, inevitably make the library less useful
> for those of us who actually do type "make -k" now and then...
While some people may end up using a library inappropriately, I
honestly don't see how a static, unchanging piece of code magically
"gets worse" as more people use it.
> I agree with that, unless one replaces the "Avantgarde/research" with "for
> experts." I.e., I want Boost to remain a choice for C++ experts.
To me, an Expert is someone who is both Experienced AND Smart. And
the smartest people I know do their absolute best at helping the
people around them be smarter, because, among other reasons, that
helps them get smarter. How else can you ever breed new experts?
> Most of those "millions of C++ users" that Oliver is refering to are
> actually quite junior C developers who have been forced to use some C++
> keywords and OOP in order to exploit MFC instead of raw Win32 programming.
They need to start somewhere.
> And those developers already have MFC and ATL, and would probably only use
> 'shared_ptr' from Boost.
That is a great beginning. Once developers get more experienced using
shared_ptrs, their designs get better, as they begin to address
resource ownership issues. They get smarter.
Another simple library they can start using is boost::noncopyable. As
they get more experienced, their designs differentiate between classes
with value semantics and classes with reference semantics. They get
> What I am saying is that it would not be unreasonable to expect the targeted
> developers to actually type 'bjam', and perhaps even set the proper
> environment variables.
I totally disagree. We need to remove every barrier of entry we
possibly can. There is nothing about understanding 'bjam' or any
arcane command line (or arcane mouse clicks in a badly designed GUI,
for that matter) that helps someone be a better C++ programmer.
> I do not think we have to flirt with the masses - developers that would not
> use the facilities found in Boost anyway - in order to position it better
> for incorporation into future C++ standardizations.
Without the masses programming in C++, the standardization effort
won't matter, because C++ will be dead.
The STL was the first library I've seen in any language that helped
developers be smarter. Once adopted (usually kicking and screaming),
the folks who use it write smaller, more robust, more understandable
code. And they are enjoying it more. Their designs are no longer
drowning in a sea of details. They are smarter.
I see much of the stuff in Boost helping people along that path.
Experts don't hoard good libraries for themselves; real experts do
whatever it takes to get other developers to understand and embrace
those libraries so that we are all writing better code and are all
journeying towards being experts ourselves.
-- Nevin ":-)" Liber <mailto:nevin_at_[hidden]> (773) 961-1620
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk