this post was submitted on 06 Sep 2024
61 points (74.0% liked)

Programming

17666 readers
58 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
61
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?

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 8 points 3 months ago* (last edited 3 months ago)

I used to think json was the best until I found json lines or line delimited json. Thank me later. I use it all the time. You can append until you’re blue in the face. It’s great for log files. Each line is a valid json file.

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

It's docs are garbage, but the language is quite simple and human readable even for non-techies. I think it's a bit too easy at times, resulting in people just kinda winging it

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

Somehow it’s clunky to use.

huh?

I find developing GitHub CI in YAML clunky.

I don't find configuring a simple service via YAML config, with a preset showing me and explaining what I can do clunky.

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

We all know it sucks. I have no idea why people use it instead of anything else. My workday is jammed with fucking ansible which, while also being so ghetto that we were easily doing more with less in 2002, uses So.much.fucking.yaml . Just when you think ansible couldn't get more clunky and useless and slow, it also is configured in yaml.

[–] [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] 18 points 3 months ago

I don't like a thing, fellas. With that being all I've told you, please explain why I don't like that thing.

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

Following along with the style of your own post: YAML doesn't suck, because I feel so.

Thanks for asking.

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

YAML had comments and trailing commas, therefore it's objectively better than JSON. If you want a compromise solution that mostly looks like JSON, try JSON5.

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

It's a rube goldberg footgun

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

Yaml is fundamentally the same as the json and xml it has mostly replaced (and the toml that didn't manage to replace yaml)... it's a data serialization format and just doesn't have any facility for making abstractions, which are the main tool we human use to deal with complexity.

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

Abstractions aren't concrete and all of these standards you're referring to are concrete data serialisations. You may be interested in CUE which captures this concept in its design.

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

JSON and YAML aren't the same as XML. The attribute/child distinction in XML, and the fact that every object has a tag name associated with it, make it a PITA to map into the data primitives of any programming language I know.

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

Yes, XML is different than JSON and YAML, but it's not particularly easier or harder to manually read/edit than JSON or YAML are (IMO the are all a pain, each in its own way).

If you want to look at it from the programmer's side (which is not what OP was talking about)... marshalling/unmarshalling has been a solved issue for at least 20yrs now :) just have a library do it for you (do map json/yaml properties to you objects manually?).

You don't need to worry about attributes/child elements: <person name="jack" /> and <person><name>jack</name></person> will work the same (ok, this may depend on what language/library you pick - the lib I used back in the day worked either way).

If anything, the issue with XML is all the unnecessarily complicated stuff they added to its "core" (eg. CDATA, namespaces, non-standalone documents, ...) and all the unnecessarily complicated technologies/standards they developed around XML (from Xinclude to SOAP and many others)... but just ignore that BS (like the rest of the world does) and you'll mostly be fine :)

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

YAML works great for small config files, or situations where your configuration is fully declarative. Go look at the Kubernetes API with its resources.

People think YAML sucks because everyone loves creating spaghetti config/templates with it.

One reason it tends to become an absolute unholy mess is because people work around the declarative nature of those APIs by shoving imperative code into it. Think complicated Helm charts with little snippets of logic and code all over the place. It just isn't really made for doing that.

It also forces your brain to switch back and forth between the two different paradigms. It doesn't just become hard to read, it becomes hard to reason about.

load more comments
view more: next ›