I like yaml. It's easy and readable. It needs a linter, of course, or you end up with unescaped strings and whatnot, but it does its job well. Plus, for the strangely passionate yaml-haters out there, the fact you can feed any modern yaml parser JSON and still make it work is a benefit for those that want to avoid yaml at all costs.
I like XML as well, especially if combined with a clear schema so it's easy to write correct markup.
I can't say I've ever used Groovy. It seems like Kotlin's Gradle DSL has completely replaced it in practice, so I can't really comment on it.
Every configuration format has its pros and cons. It all depends on what you're using it for. I'm not a fan of the endless unstructured yaml in Kubernetes (I'd much rather have something that can be schema checked easily for config that huge) but I wouldn't use Groovy for that either.
> I'm not a fan of the endless unstructured yaml in Kubernetes (I'd much rather have something that can be schema checked easily for config that huge) but I wouldn't use Groovy for that either.
Wait, there's yaml with schema support? Do you have an example on hand?
Ed:
> I like yaml. It's easy and readable.
I humbly disagree that deeply nested yaml is easy to read (and write) Kubernetes is awful - but so can complex docker compose files be.
> the fact you can feed any modern yaml parser JSON and still make it work is a benefit for those that want to avoid yaml at all costs.
Not really - JSON is a little easier to edit, but doesn't support comments - they're both pretty bad.
Even something bespoke like open tofu/terraform is better to work with IMNHO.
I like XML as well, especially if combined with a clear schema so it's easy to write correct markup.
I can't say I've ever used Groovy. It seems like Kotlin's Gradle DSL has completely replaced it in practice, so I can't really comment on it.
Every configuration format has its pros and cons. It all depends on what you're using it for. I'm not a fan of the endless unstructured yaml in Kubernetes (I'd much rather have something that can be schema checked easily for config that huge) but I wouldn't use Groovy for that either.