Configuration vs. Engineering (was Re: [linux-elitists] Re: Yet another mozilla atrocity)
Mon Oct 6 17:09:17 PDT 2003
>>>>> "KMS" == Karsten M Self <email@example.com> writes:
KMS> [...] minimizing complexity, maximizing flexibility [...]
I have a big amen for everything you said, BUT... I think that these
two principles can sometimes be at odds.
All too often in the Free Software development process design or
algorithm decisions are put off -- for reasons of egotism or for other
points -- by implementing both designs and providing a configuration
switch to choose between the two.
This can sometimes give needed control to users and administrators,
but more often than not it simply increases code complexity (with all
the consequent maintenance ills) with little needed
flexibility. Administrators and users don't really need to choose
between an O(N^2) and O(NlogN) algorithm. The better choice should be
made at engineering time, and the code for the less desirable choice
should be eliminated altogether.
Knowing when decisions need to be made -- at engineering time, install
time, or at run time -- is a key software development skill. It
shouldn't be finessed.
Note that this has no bearing whatsoever on whether configuration
files should be human-editable; it's just a note on configurability.
X-Quote: "I think a man is as big as what makes him mad." -- Reno Smith
More information about the linux-elitists