Configuration file use cases
There are two configuration file use cases. Sometimes, we can stretch the definition a bit to add a third use case. The first two should be pretty clear:
A person needs to edit a configuration file
A piece of software will read a configuration file and make use of the options and arguments to tailor its behavior
Configuration files are rarely the primary input to an application program. The big exception is a simulation where the configuration might be the primary input. In most other cases, the configuration isn't primary. For example, a web server's configuration file might tailor the behavior of the server, but the web requests are one primary input, and a database or filesystem is the other primary input. In the case of a GUI application, the user's interactive events are one input, and files or database may be another input; a configuration file may fine-tune the application.
There's a blurry edge to this distinction between primary and configuration input....