this post was submitted on 24 Feb 2026
622 points (97.7% liked)

Programmer Humor

30160 readers
1342 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 2 years ago
MODERATORS
 
(page 2) 50 comments
sorted by: hot top controversial new old
[–] creisel@lemmy.zip 1 points 6 days ago

Jason really should check his MQTT Server

[–] artifex@piefed.social 224 points 1 week ago (19 children)
[–] Valmond@lemmy.dbzer0.com 84 points 1 week ago (5 children)

Chuck in comments and I'm on board.

[–] panda_abyss@lemmy.ca 97 points 1 week ago (1 children)

If we’re adding comments to json, can we add canonical support for trailing commas?

[–] Valmond@lemmy.dbzer0.com 30 points 1 week ago (1 children)
[–] panda_abyss@lemmy.ca 44 points 1 week ago (2 children)

Oh, a trailing comma? That’s a tuple.

load more comments (2 replies)
[–] Anafabula@discuss.tchncs.de 28 points 1 week ago (1 children)

Just make JSON5 the new official version and I would be ok

load more comments (1 replies)
[–] luciferofastora@feddit.org 21 points 1 week ago (2 children)

They were chucked out because, according to the guy who defined it, people started using them for parsing directives, which hurt interoperability because now you needed to be sure that the parser would both read the comments and interpret them correctly. Suddenly, those comments might make otherwise identical files parse differently. If the whole point is that it's reliable and machine-readable, keeping it to the minimal set of features and not extending it any way whatsoever is a good way to ensure compatibility.

What you can do is define some property for comments. It's not standardised, but you could do stuff like

{
  "//": "This is a common marker for comments",
  "#": "I've never seen that as a property name, so it might be safe?",
  "_comment": "Property names with underscore for technical fields seem common enough as well, and it's semantically explicit about its purpose"
}
[–] AlexanderTheDead@lemmy.world 1 points 6 days ago (3 children)

I'm not a real programmer but I was wondering wtf you're on about because I don't think I've ever worked with a json file in a system that didn't use // for comments lmfao

load more comments (3 replies)
[–] The_Decryptor@aussie.zone 15 points 1 week ago (2 children)

And also, JSON was intended as a data serialisation format, and it's not like computers actually get value from the comments, they're just wasted space.

People went on to use JSON for human readable configuration files, and instantly wanted to add comments, rather than reconsider their choice because the truth is that JSON isn't a good configuration format.

load more comments (2 replies)
load more comments (2 replies)
[–] marcos@lemmy.world 43 points 1 week ago

Well...

It's name-value pairs, with groups denoted by balanced brackets. It's close to as good as you can get for one kind of data serialization.

What is impressive is how many problems people manage to fit in something so small.

[–] SlurpingPus@lemmy.world 35 points 1 week ago (4 children)

What's it called when people try to reinvent Lisp for the hundredth time?

[–] owsei@programming.dev 56 points 1 week ago (2 children)
load more comments (2 replies)
load more comments (3 replies)
load more comments (16 replies)
[–] palordrolap@fedia.io 167 points 1 week ago (1 children)
orange = {
    you = "glad",
    I = {
        didn\'t = {
            say = "banana"
        }
    }
}
[–] slightperil@lemmy.zip 24 points 1 week ago (7 children)

I was such a menace with this joke as a child. Haha

load more comments (7 replies)
[–] panda_abyss@lemmy.ca 98 points 1 week ago (9 children)

If yaml didn’t have anchors and 8 different white space formats, it’d be a great replacement for this kind of thing.

But yaml is a mess, and you’d think you could parse it easily, but you can’t.

[–] floquant@lemmy.dbzer0.com 62 points 1 week ago (4 children)

YAML is redeemed by one thing only:

All JSON is valid YAML.

load more comments (4 replies)
[–] Flamekebab@piefed.social 38 points 1 week ago (2 children)

As someone who works with YAML regularly:

Fuck YAML.

[–] timbuck2themoon@sh.itjust.works 1 points 6 days ago (1 children)

Nah, yaml isn't great by virtue of itself but with what it competes with. I far, far prefer it to any other BS. Json is garbage for human creation and obviously toml due to above. XML... Obviously just for machines.

Again, only good because of its competition.

load more comments (1 replies)
[–] Damage@feddit.it 23 points 1 week ago

As someone who runs Home Assistant:
Fuck YAML.

[–] suicidaleggroll@lemmy.world 28 points 1 week ago (1 children)

I want to like yaml, I really do, but why are there so many different ways of specifying the same thing?

load more comments (1 replies)
[–] ramble81@lemmy.zip 18 points 1 week ago (1 children)

I have a fundamental disdain for formats with restrictive white space definitions (I’m looking too at you Python)

[–] panda_abyss@lemmy.ca 17 points 1 week ago (3 children)

I’ve never had this issue with Python, but makefile has given me plenty of whitespace issues.

load more comments (3 replies)
load more comments (5 replies)
[–] qevlarr@lemmy.world 90 points 1 week ago (6 children)
[–] LiveLM@lemmy.zip 38 points 1 week ago (1 children)

The json spec is not versioned. There were two changes to it in 2005 (the removal of comments

See, this is why we can't have nice things.

[–] Ephera@lemmy.ml 18 points 1 week ago (7 children)

I can kind of understand it after having to work with an XML file where users encoded data into comments for no good reason. But yeah, it does make JSON awkward for lots of potential use-cases.

[–] firelizzard@programming.dev 1 points 6 days ago (2 children)

Anything can be abused. That’s not a legitimate reason to take away perfectly reasonable features. Looking at you, Java (unsigned integers).

load more comments (2 replies)
load more comments (6 replies)
[–] tfw_no_toiletpaper@lemmy.world 17 points 1 week ago

As if I didn't hate the format enough before

load more comments (4 replies)
[–] Michal@programming.dev 48 points 1 week ago (5 children)

I like this. I also like yaml, I've had very few issues with it and it's nicer to work with than json.

Json's lack of support for trailing commas and comments makes it very annoying for everyday use.

[–] Senal@programming.dev 61 points 1 week ago (7 children)

Significant white-space is bullshit and i will die on this hill.

[–] BlueKey@fedia.io 20 points 1 week ago (1 children)

Is there space left on the hill? I want to join you.

[–] Michal@programming.dev 25 points 1 week ago (3 children)

I hear there's significant space left

[–] _stranger_@lemmy.world 1 points 6 days ago

Their whole thing is that they don't want to care about it, so if you get to the hill and there's no space, you're SOL.

load more comments (2 replies)
load more comments (5 replies)
load more comments (4 replies)
[–] AnyOldName3@lemmy.world 47 points 1 week ago (1 children)

TOML's design is based on the idea that INI was a good format. This was always going to cause problems, as INI was never good, and never a format. In reality, it was hundreds of different formats people decided to use the same file extension for, all with their own incompatible quirks and rarely any ability to identify which variant you were using and therefore which quirks would need to be worked around.

The changes in the third panel were inevitable, as people have data with nested structure that they're going to want to represent, and without significant whitespace, TOML was always going to need some kind of character to delimit nesting.

[–] Ephera@lemmy.ml 27 points 1 week ago

Well, Wikipedia does say:

The [TOML] project standardizes the implementation of the ubiquitous INI file format (which it has largely supplanted[citation needed]), removing ambiguity from its interpretation.

https://en.wikipedia.org/wiki/TOML

[–] arcine@jlai.lu 39 points 1 week ago (5 children)

Nix is the next step in that evolution. It's basically just JSON that can generate itself !

[–] massive_bereavement@fedia.io 47 points 1 week ago (2 children)

Sounds like Nix is a pathway to many abilities I consider to be unnatural.

[–] Bassman1805@lemmy.world 18 points 1 week ago

Yeah, it really is. A plaintext document that generates an entire OS?

load more comments (1 replies)
[–] KindaABigDyl@programming.dev 24 points 1 week ago* (last edited 1 week ago) (2 children)

It’s basically just JSON that can generate itself !

You have inspired me.

I will make JSON with meta-programming

I will call it DyJSON, i.e. "Dynamic JSON" but pronounced "Die, Jason!"

It is JSON with meta-programming and the ability to call C functions from libraries

Example:

# This is a line comment

# Put your function definitions up here
(concat str_a str_b: "concat" "my-lib.so") # Import a function through a C ABI
(make-person first_name last_name email -> { # Define our own generative func
    "name": (concat (concat $first_name " ") $last_name),
    "email": $email
})

# And then the JSON part which uses them
[
    (make-person "Jenny" "Craig" "jenn.craig.420@hotmail.com"),
    (make-person "Parson" "Brown" null)
]

As you can see, it is also a LISP to some degree

Is there a need for this? A purpose? No. But some things simply should exist

Thank you for helping bring this language into existence

[–] AMoistGrandpa@lemmy.ca 18 points 1 week ago

I think you've just invented Jsonnet, but with C integration.

https://jsonnet.org/

load more comments (1 replies)
load more comments (3 replies)
[–] Solemarc@lemmy.world 27 points 1 week ago (1 children)

If this is where the toml train ends I will be happy with it. If they do a yaml, I will be very upset.

load more comments (1 replies)
[–] Klear@quokk.au 23 points 1 week ago (2 children)

As someone who likes lua, I don't see the problem.

load more comments (2 replies)
[–] tribut@infosec.pub 14 points 1 week ago

No, sir. That's an inline table, sir. That is clearly totally different, sir!

load more comments
view more: ‹ prev next ›