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