Boost logo

Boost :

Subject: Re: [boost] Boost Incubator Status Report
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2014-11-10 07:33:39


On 8 Nov 2014 at 15:53, Edward Diener wrote:

> > When interviewing C++ developers, I find those using Boost libraries,
> at least beyond shared_ptr, are rare. The brand is known by relatively
> few, and it is used, to any significant extent, by fewer still. That
> implies the need to grow our ranks through some form of advertising.

Did anyone ever get promoted for jumping onto new language features
before they are commonplace? I'd doubt it.

> I have never seen this. Good C++ programmers use Boost libraries when it
> saves them work because the libraries are high quality. Bad-mediocre
> programmers re-invent the wheel incessantly.

I strongly disagree with this. People, which programmers are usually
as well, respond to incentives, that's all.

A top class C++ engineer sitting on the ISO committee may in fact
*often* reinvent the wheel incessantly at work. If their corporate
employer takes a minimum of three months for Legal to clear the use
of any new version of an open source library and your work item
requires you to deliver the solution inside two months, you follow
your incentives and you go ahead and reinvent that wheel.

There is also the substantial problem still present at most employers
that your engineering prowess is judged on lines written and JIRA
issues closed. Reinventing the wheel will always generate more lines
written and more JIRA issues for you to close. It therefore
substantially increases the chance that your job role will be seen as
vital to the company, and therefore someone else will get axed before
you will.

You must remember that as with most non-consulting programming roles,
your single highest priority is to retain your job at all costs. Your
second highest prority is probably to keep your family happy by not
getting dragged in for overtime constantly, and your third highest
priority is to not hate your work too much, which means avoiding
doing anything controversial or anything which might annoy anyone
else and cause them to throw crap your way. Engineering quality come
very far down the list of priorities for most programmers. And
therefore, by implication, so does Boost - if anything, using Boost
marks you as having a touch of zealousness, and therefore as a threat
to the org which must be eliminated as soon as possible by anyone
with "career aspirations".

I couldn't possibly state that any of the above comes from personal
experience working in large corporate orgs :)

> Having worked for approximately 30 different companies in my career as
> largely a computer programming consultant I am well aware of many
> programming shops, even within major corporations, who have no clue
> about reusability of software.

I think this is harsh. It's more they don't *care* about reusability.
And why should you: reusability equals fewer jobs and higher risk of
getting laid off. What you really actually want to write is code
which works just about well enough to make your job mission critical,
but not well enough they don't need you any more.

> There is absolutely nothing Boost can do
> for such places, because the general understanding of program creation
> is so low and in the hands of programming managers and their like who do
> not understand programming design in any way.

It's more again that they don't care, or rather don't prioritise.
Even if you yourself care, your line manager and their line manager
worries about fighting for resources in the org and making sure that
their team remains ranked high by management compared to other teams.
They also have powerful incentives to not produce too excellent
engineering. They do have strong incentives to be seen as excellent
firefighters who can "save" a failing mission critical project. None
of this implies good design from the outset. It's really all about
throwing banana skins under feet, at least from the line managerial
point of view, and wrapping good patches around terrible design.

> I have fought too many
> losing battles with companies for which I have consulted, trying to
> convince people whose programming talent is low, that using reusable
> libraries such as Boost will make it easier to accomplish their goals.
> OTOH I have also worked for a number of smart companies which will use
> Boost libraries, as well as other reliable, specific programming
> libraries which exist, to increase their productivity.

Using Boost will substantially raise your recruitment costs. Right
now my current client who uses Boost and the C++ 11 STL extensively
is trying to hire more engineers willing to relocate to their HQ and
we've already dumbed down the job description once, and we'll
probably have to drop any mention of the STL or Boost and any mention
of unit testing or multithreading next because we are seeing *zero*
applications.

Niall

-- 
ned Productions Limited Consulting
http://www.nedproductions.biz/ 
http://ie.linkedin.com/in/nialldouglas/



Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk