this post was submitted on 06 Sep 2024
61 points (73.6% liked)
Programming
17503 readers
8 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities !webdev@programming.dev
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Yeah TBH I like yaml. Sure its not the best ever, but its not the worst it could possibly be.
For config its not terrible. For ansible playbooks its again... not terrible.
Why is everyone always hating on something which is just kinda mid.
Config is fine, but Yamls biggest problem is people use it to describe programs. For example: playbooks. For example: CI steps.
If YAML wasn't abused in this way it would have a lot less hate.
What's wrong with using YAML for CI? I mean, I use it for Gitlab CI, the underlying script it runs is just Bash.
You're doing it right by avoiding as much of Gitlab's CI features. I've seen versions where scripts are inlined in the YAML with expressions in random rule fields and pipeline variables thrown all over the place. And don't get me started on their "includes" keyword, it's awful in practice, gives me nightmares.
Then I write a Kubernetes manifest in YAML with JSON schema validation and the heart rate goes down again.
Right, so you just have a single step and then hand over to a proper script. I've seen many people try to put much more complex logic in there before handing over to a proper language.
I dream of a life where I use YAML but all my configs are stuck in XML. People can complain but there's always worse options.
One nice thing about XML is that there's an official way to link to the schema from within the document. If you do that you can easily automatically validate it, and even better you get fantastic IDE support via Red Hat's LSP server. Live validation, hover for keys, etc.
It's a really nice experience and JSON schema can't really match it.
That said, XML just has the wrong data model for 99% of use cases.