3 ms·
> This means that the config files behave nothing like actual software--instead, they have their own special rules to follow and their own semantics to understa
by dasil003 14y ago
> This means that the config files behave nothing like actual software--instead, they have their own special rules to follow and their own semantics to understand. These languages also tend to have very little abstractive power, which leads to all sort of incidental complexity and redundancy. Good software engineering and programming language practices are simply thrown away in config files.
I have to disagree that this is the critical problem with system configuration. The typical config has orders of magnitude less complexity than the typical software project. The problem with config files is not the complexity of the configuration itself (except perhaps in Java), but the complexity of the global effects they produce. It doesn't matter how clean and DRY you make your config, and how well-tested, if the software supports too many options that can interact in unpredictable ways, or worse, produce subtle outward facing changes that ripple out to systems that interact with yours.
- tikhonj 14y agoIt's certainly not the only problem with systems configuration. However, it is a broad problem: it applies to more than just systems. And, as you may have guessed from my examples, I don't really do systems stuff all that much. But I do deal with a bunch of other configuration files and formats! It's more a comment on config formats in general.
- dasil003 14y agoWell I agree the proliferation of formats is a problem, but I think it's an intractable one. General languages solve the problem of "I can't use config language X because it's missing feature Y", but for every project you bring on board you lose one because they don't want that much power in their config files.