nicely summarizes YAML’s pitfalls.

Developers over 30 may remember the age of XML. YAML was refreshing at that time and did have some good ideas such as having built-in types. Lisp’s S-expressions have been having built-in types for decades though.

That being said, YAML is overly complicated and we have used that too far.


I think TOML is good enough.

In BSD world, there is UCL (Universal Configuration Language), which looks nice. There is also HashiCorp’s HCL (HashiCorp Configuration Language), which is inspired by UCL. Why don’t they use UCL as is? It is answered in this GitHub issue.

Then there are “JSON for humans” formats such as JSON5 and Hjson.