Apparently I'm in the minority that feels config languages should be little more than namespaces and key-value storage and should not be programmable.
I would not want to use a bash script as a config file, for example.
I would not want to use a bash script as a config file, for example.
And, have you ever worked with giant configs in json or yaml? It becomes incredibly painful to manage.
Even something as simple as variable substitution becomes very useful in these cases so that configuration can be a single file and substitution delivers the staging or production config. Functions and operators allow more complicated configurations to remain DRY. Checks prevent the stage servers from using the production database connection string, etc.