this post was submitted on 06 Sep 2024
62 points (73.8% liked)

Programming

17668 readers
152 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 [email protected]



founded 2 years ago
MODERATORS
62
Why YAML sucks? (programming.dev)
submitted 3 months ago* (last edited 3 months ago) by [email protected] to c/[email protected]
 

I feel that Yaml sucks. I understand the need for such markup language but I think it sucks. Somehow it's clunky to use. Can you explain why?

(page 2) 50 comments
sorted by: hot top controversial new old
[–] [email protected] 7 points 3 months ago

"Why does YAML suck?" is a question. "Why YAML sucks" is an explanation.

[–] [email protected] 7 points 3 months ago

It's inconsistent and annoying. Expressive, yes. Gets it's job done, yes. Absolute nightmare of a spec, YES.

The fact that JSON is a subset of YAML should tell you everything about how bloated the spec is. And of course there's the "no" funny things.

Personally, my favourite way to write configs was using lua (because it was already part of the project so why not), but JSON does fine.

[–] [email protected] 6 points 3 months ago

I don't like it either, but I'm not entirely sure why. Maybe the biggest flaw to me is it uses Python style indentation for structuring as part of data logic. It doesn't feel like a configuration language to me and it does not feel simple too. It's also unlike most programming language structures (maybe besides Python), so it looks weird to read and write. Other than that, I don't know exactly why I don't like this format much. Admittedly, I did not do much in YAML, so because lack of experience take my opinion with a thick grain of salt.

We have JSON and TOML. I quiet like TOML. We have "better" alternatives, that are probably easier to parse. And therefore there is not much need for YAML. Maybe if YAML was the default config format for Python it would get off the ground and be accepted more often.

[–] [email protected] 5 points 3 months ago

White space/indentation as a construct of the syntax.

It’s why I have a hard time with python.

People have their likes and dislikes. Nothing wrong with that.

[–] [email protected] 4 points 3 months ago

It's a rube goldberg footgun

[–] [email protected] 4 points 3 months ago* (last edited 3 months ago) (1 children)

YAML is fine if you use a subset (don't use the advanced features - not like you know those anyway) and use explicit strings (always add " to strings), otherwise things may be cast when you did not intend values to be cast.

Example:

country: NO (Norway) will be cast to country: False, because it'll cast no (regardless from casing) to false, and yes to true.

country: "NO" should not be cast.

[–] [email protected] 2 points 3 months ago* (last edited 3 months ago) (1 children)

People are working on making S-Expressions a standard: https://datatracker.ietf.org/doc/draft-rivest-sexp/

Note: This is just a draft, but improvements have been happening since 2023.

I probably won't like the parentheses, but I think I'll take it over yaml/json/whateverelse.

[–] [email protected] 7 points 3 months ago (2 children)

That appears to not support comments. How they made that mistake after JSON is a mystery.

load more comments (2 replies)
[–] [email protected] 4 points 3 months ago
[–] [email protected] 3 points 3 months ago

I think much of the issue with YAML is that it's often paired with bad editors. You need a way to manage the whitespace, collapse sections, etc. Notepad doesn't cut it.

[–] [email protected] 3 points 3 months ago (1 children)

I wish s-expression was a popular alternative. It's readable without the yaml issues.

load more comments (1 replies)
load more comments
view more: ‹ prev next ›