Forum: CFEngine Help
Subject: Re: (addendum) How easy/simple is cfengine?
Author: davidlee
Link to topic: https://cfengine.com/forum/read.php?3,24353,24443#msg-24443

Low threshold (i.e. easy and swift) for publishing?  High quality?  There is, 
indeed a trade-off.  In a phrase beloved in the world of optimising compilers 
and numerically intensive computing:

"How fast do you want the wrong answer?"

Achieving the result may look easy and swift, but if the product is wrong it is 
just plain bad.

We can probably ease that somewhat if we change "low threshold for publishing" 
to something like "low threshold to active peer-review and potential subsequent 
publishing".

But if something bad is easily published by one person, the knock-on 
maintenance damage afflicts many more.  ("Bad" doesn't just mean wrong in an 
"obvious now" sense; it also means both poorly designed for general use and 
potentially wrong a "few months later maintenance" sense.)

Look at the "cronjob" entry in its current online version at 
http://cfengine.com/manuals/cfengine_stdlib.cf which is actually official, and 
yet is still poor.  To pick just a few points.  Why does it only allow setting 
two out of the five time fields?  Why does it get the pathnames wrong for BSD?  
(That is, why is there no proper/error handling of unknown system types?)  Why 
does it behave badly if I change a field?  (It adds a second cron entry, 
without deleting the first!)  Why no means to delete an entry?  (And this is an 
"official" product.)

The CPAN analogy is superficially attractive but actually poor.  CPAN has a 
strong set of guidelines for its external contributors, but cfengine doesn't 
even have that for its own internal use (stdlib and the various site.cf, 
promises.cf files: no apparent naming conventions at all; completely haphazard 
indentation; functional inadequacies (e.g. cronjob); etc.).   If the cfengine 
insiders haven't even got a set of internal conventions, how on earth can we 
expect this to open up successfully to all comers?

Yes, I would really like to see something like this externally available to us, 
both as contributors and users. But first of all, ought it not to be applied 
internally, within the existing product line?  Is that not a pre-requisite, so 
that there is real experience on the ground of managing the absolutely vital 
aspects of peer-review and editing, before opening up into in this expanded 
venture?

_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to