Configuration provides a program with the relatively static information it needs to function (file names, etc) as data, not code.
Some people think this distinction is spurious and you should just do it in code.1 Some people think the opposite, that you should have as close to nothing as possible in the semantics of your configuration language (see e.g. NestedText).
Nickel's rationale discusses some of the more esoteric configuration languages: nickel/RATIONALE.md at 0f192ea0
Dima Gerasimov, “Your Configs Suck? Try a Real Programming Language.” (beepb00p, April 5, 2020), https://beepb00p.xyz/configs-suck.html.