<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi,<div class=""><br class=""><div><blockquote type="cite" class=""><div class="">It is tempting to have a configuration file, even though I can appreciate Joerg's remark that such a file can be in fact a module. A config file can lead to a Unix disease that one never knows what the computer is doing without digging into and deciphering .rc files which seem to be everywhere. It is a serious illness in my opinion, though "seasoned programmers" seem to appreciate it very much.</div></blockquote><div><br class=""></div>Well as a seasoned programmer I put together this little text a few years ago with regard to my opinion on configuration file: <a href="https://inodes.ch/doc/konfiguration.pdf" class="">https://inodes.ch/doc/konfiguration.pdf</a></div><div><br class=""></div><div>Unfortunately in German, but nowadays you can pass it to a translation engine of your choice if you do not understand the original language:-)</div><div><br class=""></div><div>In short I argue, that there might be just two main reason that really force you to use configuration files.</div><div><br class=""></div><div>Mandated: Either because someone that shall not have access to the source needs to make some changes or in unfortunate environments where making changes to a configuration file is made much easier than changes to source.</div><div><br class=""></div><div>Operational: When a software is so huge, that restarting is a non-option as it takes too much time, yet some stuff needs to be tweakable over time.</div><div><br class=""></div><div>Other than that I am on the same page as Jörg. Also because all too often I have seen "configuration files" growing over time into their own programming language.  First it is maybe just</div><div><br class=""></div><div>Ctrl-C: System.CloseScreen</div><div><br class=""></div><div>Then requirements change because you e.g. write a ShellViewer giving access to your Linux box and you realise that you need to pass Ctrl-C unchanged in this circumstance, so the configuration file becomes something like</div><div><br class=""></div><div>[ShellViewer]</div><div>Ctrl-C unmapped</div><div><br class=""></div><div>[*]</div><div>Ctrl-C: System.CloseScreen</div><div><br class=""></div><div>And now you have already invented an awkward IF ... THEN ... ELSE ... END. This can go on over time until your new language is as complex as Oberon without having its beauty.</div><div><br class=""></div></div><div class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">claudio<br class="">-- <br class="">Claudio Nieder, Ruhestrasse 7, CH-8045 Zürich, Tel +4179 357 6743, <a href="http://www.claudio.ch" class="">www.claudio.ch</a><br class=""><br class=""><br class=""><br class=""></div></div>
</div>
<br class=""></body></html>