Not xml
There is no best. It depends on the application
Agree 100%
How would it depend?
Some applications don’t have enough config entries to warrant support for nested entries
Some applications need variable-length data, and some even variable-length lists
Some applications don’t care about having fast read/write times or a small memory footprint and can do with more complex formats that require the use of third-party libraries
Some embedded applications (e.g. AVR) don’t have access to a whole lot of libraries
The one already being used by the project.
Yup. If I have to pick one for a new project, I’ll go with TOML unless there’s a reason to pick something else. I like that it’s simple, while also having a bunch of features for when the project grows.
Pretty much same here. With Spring stuff I still use YAML because TOML doesn’t have first class support yet. If TOML is an option I don’t have to go too far out of my way for them I go for it.
YAML has too many foot guns. It’s still less annoying to read and write than JSON though. Properties files are okay but there doesn’t seem to be an agreed upon spec, so for edge cases it can be confusing.
A well documented one.
Agreed. YAML is a pain to edit manually, to ensure that all the tabulation is correct and the parser does not choke. JSON is passable, but you must be mindful about the brackets. XML is too verbose and duplicative. INI files are just good enough.
That’s why I like TOML. It’s basically INI, but it has more structural features if you need them. Most of the TOML files I use look just like ini files.
YAML is fine if you use a formatter. JSON’s ok to read but a pain to write imo. INI if it’s simple.
Definitely not yaml. It’s spec is horrible.
Toml is pretty nice though.
I hate table definitions in TOML with a passion.
I like YAML. I guess that’s because I don’t need to build parsers for it. What’s your worst complain about it?
Very educational.
Thie essentially boikls down to “quote yur shit”. Yes, it can be frustrating if a language superficially allows you to use unqoted strings with the promise that it will inteligently interprets that. It’s like parentheses in arithmetics. If you are not sure or if you are not competent in a language enough to predict the order of operations, use parentheses. The same with strings and quotes in yaml.
… or just use another tool where you don’t even have to think about this problem.
JSON is overly verbose and doesn’t allow comments. Please do not use it for anything that humans frequently need to read or write.
YAML is a syntactic minefield. Please do not use it for anything ever.
I’d say a file that you can open with a simple text editor is convenient, so it can be a simple .conf/.ini, more complex are .xml/.yaml that you can still edit in vim/nano but can be cumbersome.
But as others say, it all depends on your app…
Toml is about the same as ini files at least with what I’ve worked with
.ini has never let me down.
I really dislike when indentation is a part of the syntax (like in YAML). Apart from that it depends on the requirements of the project.
Not XML. Not binary-only (looking at you, Solaris).
Personally, I like .ini-style config files, but I’m weird that way.
Toml is kind of ini++, though, isn’t it.
Json
UCL and HCL are interesting, but YAML is more widely supported.
.txt
nix
This post was sponsored by NixOS gang
(jokes aside, json is king. Yaml is a pain in the ass)














