-----Original Message----- From: Boost [mailto:boost-bounces@lists.boost.org] On Behalf Of Hans Dembinski via Boost Sent: 30 November 2017 10:52 To: Stefan Seefeld Cc: Hans Dembinski; boost@lists.boost.org Subject: Re: [boost] Announcement: Faber, a new build system based on bjam
On 29. Nov 2017, at 14:31, Stefan Seefeld
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 https://github.com/stefanseefeld/faber/blob/develop/examples/modular/fabscri...
https://github.com/stefanseefeld/faber/blob/develop/examples/modular/fabscri...),
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! Paul PS '$(>)' really, really turns me off :-(