Subject: Re: [boost] Boost Incubator Status Report
From: Edward Diener (eldiener_at_[hidden])
Date: 2014-11-10 14:02:18
On 11/10/2014 7:33 AM, Niall Douglas wrote:
> 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.
1) I did not write what you are responding to. Please quote correctly.
2) Many ( most ? ) Boost libraries are not about new language features.
3) I never realized that using a software library is all about getting
promoted in some programming job.
>> 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*
I get it. Your view is the mercenary one where no one in corporate
programming cares about anything but making money, job security, and
getting ahead in whatever way possible. Bravo ! But in that view also
Boost has no business trying to appeal to programmers in the corporate
world by dumbing down its software.
I do agree with Robert Ramey that better documentation is always an
admirable goal for library developers, since understanding what a
library offers is necessary for deciding if it is of any use.