this post was submitted on 12 Nov 2023
1032 points (97.7% liked)

Programmer Humor

18532 readers
2245 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 96 points 8 months ago

Reminds me of

[–] [email protected] 49 points 8 months ago (2 children)

Friendly reminder if you prefer dealing with JSON - YAML is a superset of JSON, so any valid JSON is also valid YAML.

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

That’s more of a weakness of yaml. There’s so many ways to specify the exact same thing. Not exactly what you need for configuration files maintained by multiple people. It easily becomes an big incoherent mess.

In JSON the default way is the only way. Nice and coherent.

[–] [email protected] 27 points 8 months ago* (last edited 8 months ago) (1 children)

I agree that YAML is painful and it really seems like it's had a lot of feature creep.

JSON is painful in its own way too, though. There's a lot of syntax noise from things like braces, quotation marks, etc, so it's easy to make a mistake. Regular JSON doesn't allow trailing commas.

YAML tried to solve some of that, and did succeed in some ways, but introduced its own issues.

TOML seems great to me, but maybe it has its own issues. TOML actually has defined data formats for things like dates (both offset and local) and times, which is missing from both JSON and YAML so every app ends up doing it its own way.

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

One big thing of JSON I hate is that sometimes is used for config files or similar and it doesn't supports comments which sucks.

[–] rambaroo 7 points 8 months ago* (last edited 8 months ago)

JSONC does support comments but it wouldn't be interoperable with anything expecting pure JSON. But still useful for local configs.

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

Found out the hard way that no, it's not.. there are a few valid json files that most yaml parsers choke on

[–] [email protected] 25 points 8 months ago (2 children)
[–] JimVanDeventer 98 points 8 months ago (2 children)
[–] [email protected] 78 points 8 months ago (34 children)

Interesting. I've apparently never seen the original. The best version I've seen, which I thought was the original, was porn. It just makes the guy's face in panel 4 that much better.

load more comments (34 replies)
[–] [email protected] 4 points 8 months ago

i thought the original onewas about flashlights

[–] [email protected] 13 points 8 months ago* (last edited 8 months ago) (1 children)
[–] [email protected] 22 points 8 months ago (1 children)

Home Assistant back in 2019..

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

It's been satisfying watching my configuration.yaml file shrink over the years as more and more things get handled by the UI.

[–] topinambour_rex 17 points 8 months ago (11 children)
[–] marcos 36 points 8 months ago

Yes, a bit. But that's not the problem.

The problem is that the current fashion of devops is done through piles and piles of badly defined YAML. If it used any other configuration language, it would be just as bad.

[–] mkhopper 28 points 8 months ago (1 children)

It isn't "bad", as it does have a purpose. It's just fucking annoying to work with.

https://docs.platform.sh/learn/overview/yaml/what-is-yaml.html

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

How's it annoying? It's easier to edit by hand than json as it allows for comments and there's no trailing comma errors. I prefer it any day over json.

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

There’s a lot of foot guns in YAML. The specification is way more complicated with hidden obscurities. JSON specification is just 5 diagrams. YAML speciation on the other hand is an 86 page pdf, so there’s more room for nasty surprises (which is not a thing you want in configuration files).

I’ve also seen many people struggle more than they need to with the yaml indentation.

I think the only upside to yaml is that it allows for comments, but other than that JSON all the way.

https://ruudvanasseldonk.com/2023/01/11/the-yaml-document-from-hell

[–] TheGiantKorean 5 points 8 months ago (4 children)

The fact that it allows comments is really, really handy. I used to be a JSON advocate until I realized this one useful piece of info.

load more comments (4 replies)
load more comments (1 replies)
[–] [email protected] 8 points 8 months ago

There are plugins that go back and forth between JSON and YAML so as you might expect it's similar. Unlike JSON, spacing has semantic meaning, which can be a little annoying, especially when cutting and pasting. It's nice in that configs aren't cluttered up with open and close braces. It could be annoying AF if you're a tabs instead of spaces person but idk because I'm a spaces person.

I like YAML for config over .config files but it's not a big deal either way. It just encourages better organization of settings because the hierarchical structure demands it while .config let's you just drop a setting anywhere in the file. But it's valid to have the opposite preference for the exact same reasons.

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

I'll answer your question with a question. Why does YAML support sexagesimal? (that's base 60)

ports:
- 22:22

Becomes

{
  "ports": [1342]
}
load more comments (6 replies)
[–] [email protected] 8 points 8 months ago (1 children)
[–] FooBarrington 22 points 8 months ago

That's okay, not everyone can be right :)

load more comments
view more: next ›