Boost logo

Boost :

Subject: Re: [boost] Announcement: Faber, a new build system based on bjam
From: Paul A. Bristow (pbristow_at_[hidden])
Date: 2017-11-30 12:32:58

> -----Original Message-----
> From: Boost [mailto:boost-bounces_at_[hidden]] On Behalf Of Hans Dembinski via Boost
> Sent: 30 November 2017 10:52
> To: Stefan Seefeld
> Cc: Hans Dembinski; boost_at_[hidden]
> Subject: Re: [boost] Announcement: Faber, a new build system based on bjam
> > On 29. Nov 2017, at 14:31, Stefan Seefeld <stefan_at_[hidden]> wrote:
> >
> > On 29.11.2017 07:59, Hans Dembinski wrote:
> >>
> >>> from faber.artefacts.binary import binary
> >>>
> >>> greet = module('greet')
> >>>
> >>> hello = binary('hello', ['hello.cpp', greet.greet])
> >>>
> >>> rule(action('test', '$(>)'), 'test', hello, attrs=notfile|always)
> >>>
> >>> default = hello
> >>>
> >>> (from
> >>>
> <>),
> >>> which uses higher-level artefacts (`binary`, `library`) and doesn't
> >>> require the user to define his own actions to build.
> >>
> >> This example remains cryptic.
> >>
> >> from faber.artefacts...: artefacts? The term "artefact" is very general and non-descriptive. The first definition provided by
> Google is essentially "human-made thing".
> >
> > Right, it's what "faber" generates (using the same stem even).
> :) Fair enough, but it is still not very descriptive. Why use an uncommon latin word if you could use a common word from
> day-to-day language? The purpose of language is to transmit information, so it is usually a good idea to use common words
> that leave no room for ambiguity.
> Ironically, the other meaning of "artefact" is "any error in the *perception or representation of any information*, introduced
> by the involved equipment or technique(s)" [Wikipedia]

I'm with Hans on this.

The underlying problem is that we have run out of words that mean 'thingamajig'.

“When I use a word,” Humpty Dumpty said, in rather a scornful tone, “it means just what I choose it to mean—neither more nor less.” “The question is,” said Alice, “whether you can make words mean so many different things.” “The question is,” said Humpty Dumpty, “which is to be master—that's all.”

Every time you want a 'thingamajig', it is different thing and you have not only to define it (easy-ish), but get that definition into the mind of the reader (much more difficult) and until you achieve the latter, you will leave the user confused.

Choosing a word like 'artefact' that has multiple customary meanings is asking for more confusion.

It's tricky because all the words you might chose have another definition already from some other application and so are 'taken' in peoples' minds.

No specific suggestions have popped into my mind.

But it would be better to call it 'thing' than artefact!


PS '$(>)' really, really turns me off :-(

Boost list run by bdawes at, gregod at, cpdaniel at, john at