You must log in or register to comment.
Honestly that probably goes for any interpreted programming language that supports imports.
Many Javascript frameworks just put their configuration into -.config.js files in the project root. Which is a pretty elegant solution that does not require custom parsing. Just import the config and go nuts.
Compiled (and by extension bundled) software obviously requires a different approach, but at that point you should probably consider storing your config in some kind of database.
Maybe there just isn’t a right answer to the config conundrum if all the general solutions are janky in some way.
Well, there’s a few things I personally think are a must for a config format:
- It must be human readable and editable, in some way. - in many cases, you may want to go and change something in the config while the application proper isn’t running. That rules out stuff like pickle or binary formats. Although I suppose sqlite and it’s ilk still fulfill it, in a roundabout way.
- It should be unambiguous, with one way to do something right. - this one’s a doozie. JSON fulfills it since it’s unambiguous about it’s types, but many interpreted language configs will have options. And then YAML will have “no” turn into “false”.
- It should probably have comments. - handily failed by standard JSON implementations. Although to be fair a lot of parsers I’ve used understand comments. Or you can make a comment stripper real easily.
- It should have obvious structure. - I’ve dealt with CSV configs before, I do not want to ever again.