this post was submitted on 12 Nov 2023
1034 points (97.6% liked)

Programmer Humor

19623 readers
7 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
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 58 points 1 year ago* (last edited 1 year ago) (5 children)

Not always, but the second you use anchor/references you have sold your soul in a Faustian bargain of convenience.

On the alignment chart of data/markup formats:

  • lawful good: JSON
  • lawful neutral: TOML
  • lawful evil: XML
  • neutral good: reStructuredText
  • true neutral: HTML
  • neutral evil: LaTeX
  • chaotic good: YAML
  • chaotic neutral: Markdown
  • chaotic evil: xlsx/csv
[–] [email protected] 22 points 1 year ago (1 children)

Nah this chart needs fixing. Raw html is not neutral. And how is html neutral but xml evil. And who is writing restructured text outside of python?

[–] [email protected] 4 points 1 year ago (1 children)

Also where's regex? Though that's so troublesome because it's a process encoded in a string, not really a structure with debatably obnoxious syntax... hmm

[–] [email protected] 2 points 1 year ago

Because regex isn't a language used way to store or view data. It's just a quick way to find, and potentially replace text.

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

I honestly think that JSON and YAML should be swapped due to YAML's strict indentation rules whereas you can just pack an entire JSON object on one line.

[–] Socsa 9 points 1 year ago (2 children)

Also JSON has no comments. Which is great for me because I hate documenting my work, but it's still annoying.

[–] [email protected] 4 points 1 year ago (1 children)

Just create an attribute for your comments!

[–] sloppy_diffuser 1 points 1 year ago

I just learned yesterday you can do this, lol. You can use "//": '' once at the root level of a package.json file.

Had to put an override to block a dependency of a dependency from installing (@types/* stubs when the package now has native type defs that conflicted with the no longer maintained stubs).

I put in a comment as to why its there.

[–] [email protected] 6 points 1 year ago (1 children)

I think yaml’s need for indentation alone makes it chaotic evil. I’ve seen so many people struggle with the indentation than they really need to it’s not fun. Especially problematic with large configuration files.

JSON is easy to unpack with tools like jq or whatever.

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

There are 6 different combinations of “interpret multiline whitespace” character patterns. There are three types of single-line strings, and if you use “Yes” or “No” the data gets type cast.

Yaml is chaotic.

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

Just because there are a lot of rules doesn't make something chaotic in this system. The lawful-chaotic axis is a spectrum of how much of a stickler for the rules you are. YAML's "one whitespace out of place and your whole config is fucked" attitude puts it squarely into lawful territory. JSON by contrast gives no shits about your file structure as long as your curly braces match.

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

Oh this is a good point - the syntax error on line one has ruined several productive days.

Of course the tool would happily prettify it for me, but it has to be valid json. Which I think would make it more enjoyable if it said in that message "Good luck, we're counting on you."

[–] [email protected] 7 points 1 year ago

TOML is my bestie

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

I went straight from chaotic evil to lawful good.

[–] [email protected] 1 points 1 year ago

good to know I'm on both the lawful good and the chaotic evil side