"Configurability is the root of all evil." This is one of the mottos of the FishShell. -- JasonGrossman "Every configuration option in a program is a place where the program is too stupid to figure out for itself what the user really wants, and should be considered a failiure of both the program and the programmer who implemented it." -- http://www.fishshell.org/user_doc/design.html ------------------- Choice, or 'there is more than one way to do it', is a sometimes necessary evil, and should generally be delayed (late binding of choices). Choices tend to grow and grow in combinatorial manners and resist composition. Not only do app-developers have choices, but so do library developers. An app-developer that wants to use two different libraries might be stuck with incompatible choices... unless he or she writes the library again with different choices, or rewrites the library with abstractions on the choices. ---------------- Related: ConfigurationFiles, PolicyInjection, ThereIsMoreThanOneWayToDoIt