this post was submitted on 09 Jun 2026
247 points (98.4% liked)

Programmer Humor

31948 readers
480 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 3 years ago
MODERATORS
 
top 39 comments
sorted by: hot top controversial new old
[–] mindbleach@sh.itjust.works 76 points 2 weeks ago (4 children)

It's the configuration complexity clock.

You hardcode values in an established, full-featured programming language.

That gets annoying, so you push some into config files.

That's not powerful enough, so you let the config files include conditionals.

Soon your config files are more like scripts, but it's so easy to keep adding features...

And suddenly you're back to hardcoding, but in a newer, jankier programming language.

[–] HeHoXa@lemmy.zip 12 points 1 week ago (1 children)

That's not powerful enough, so you let the config files include conditionals.

NOPE! Nope. That's the too far point. Abort. Abandon ship. Start over.

[–] mindbleach@sh.itjust.works 3 points 1 week ago (1 children)
[–] HeHoXa@lemmy.zip 4 points 1 week ago (1 children)

Grug make thinky box do good.

Grug too dumb to understand impossible.

Peers say server too weak for search. Grug write custom search. Customer happy. Boss happy. Peers say it fail edge case. Grug shrug.

Peers say web app can't use CLI tool. Grug make extension. Customers happy. Boss happy. Peers say that cheating. Grug too dumb for rules.

Grug code small. Get used lots. Peers code big. Argue about reviews. Never get deployed.

Grug strongest there is

[–] mindbleach@sh.itjust.works 2 points 1 week ago (1 children)

"Grug too dumb for rules" is legitimately good programming advice.

[–] HeHoXa@lemmy.zip 2 points 1 week ago

Only sort of related but this reminded me of something that struck me recently:

A great benefit of being dumb is never knowing something was too obvious to be worth logic

Often in comedies, there will be a scene where the dummy helps the genius reach some epiphany just by applying simple reasoning to a point the genius glossed over

I think this is pretty realistic

[–] lime@feddit.nu 11 points 2 weeks ago

i prefer referring to greenspun's tenth

[–] somegeek@programming.dev 6 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

So this is exactly talking about Nix, Guix, chezmoi?

[–] zaubentrucker@sopuli.xyz 11 points 2 weeks ago (1 children)

Don't know about chezmoi, but Nix and Guix use a proper programming language that is also suited as a configuration file format, no?

So they're at noon and might just stay there

[–] lime@feddit.nu 6 points 2 weeks ago (1 children)

guix yeah, since they picked a pre-existing one. nix the language is arguably an overgrown dsl which explaits why it's... real weird.

[–] zaubentrucker@sopuli.xyz 2 points 2 weeks ago

I guess nix started at noon of the next day lol

[–] kibiz0r@midwest.social 5 points 2 weeks ago

That’s excellent. I think the initial momentum towards a DSL is basically equivalent to https://en.wikipedia.org/wiki/Inner-platform_effect

[–] bricked@feddit.org 49 points 2 weeks ago (1 children)

Aaand... it's Turing-complete!

[–] BodilessGaze@sh.itjust.works 36 points 2 weeks ago

You now have a moral obligation to port Doom to it

[–] spazzman6156@sh.itjust.works 34 points 2 weeks ago (5 children)

Ok I'm inferring here, but why does DSL mean more than one thing in the technology/computer field? The only one I know is Digital Subscriber Line

[–] Hasherm0n@lemmy.world 45 points 2 weeks ago (1 children)

The one I'm familiar with is "Domain Specific Language"

[–] Mikelius@lemmy.ml 19 points 2 weeks ago (1 children)

I was thinking Damn Small Linux. Felt weird reading "small damn small Linux"

[–] fruitycoder@sh.itjust.works 4 points 1 week ago

"small, damn small. Linux."

Sounds like an ad lol

[–] luciferofastora@feddit.org 22 points 1 week ago (1 children)

In this case, it probably is "Domain Specific Language". If you're unfamiliar, that means it's created for a very specific context, unlike other, more general languages. That means you can keep the set of features small and save a lot of time making complex stuff work that isn't relevant to that context.

Loops are complex stuff. If you don't really need them, you're better off just keeping your language linear.

On the other hand, they're neat. Can't be that bad, can it?

[–] pinball_wizard@lemmy.zip 11 points 1 week ago* (last edited 1 week ago)

Can't be that bad, can it?

Lol. Brings back so many memories of my own regrettable assumptions.

[–] diabetic_porcupine@lemmy.world 16 points 1 week ago

Dick sucking lips

[–] kevincox@lemmy.ml 7 points 1 week ago

Because every three letter acronym means more than one thing. There are only 17 576 TLA so they are going to be heavily duplicated.

You should almost always spell out acronyms on the first use.

[–] LovableSidekick@lemmy.world 0 points 1 week ago* (last edited 1 week ago)

I'm puzzled too. In DSL the "local loop" is the wiring between your house and the nearest central office or concentrator. Kind of like "last mile" but more like "last block or two". So I don't get what "adding loops" would mean.

Besides Domain Specific Language which somebody else refers to in the thread, DSL can also mean Damn Small Linux. Still no clue about adding loops.

[–] Hudell@lemmy.dbzer0.com 17 points 2 weeks ago (1 children)

I have created a handful of DSLs over the years and I think most of them were bad ideas. Ironically the most complex one is the one that I think was actually right. It had support for a lot of stuff like loops, functions, custom variables and even some weird shit like async execution of child commands.

I think what made it work in that case was mostly that the purpose of the DSL was completely different from the others. The system wasn't designed with a DSL in mind. The DSL was just a simpler way to provide input for something that was already there.

[–] owsei@programming.dev 2 points 1 week ago

Exactly! Making a DSL and using it like a programming language introduces necessities that will not be considered as throughly if they where added to a "real" language.

I once wanted a DSL for a calendar program I was making (so the user could define complex events and stuff). So I made a simple programming language that could be embedded in the program, kinda like how lua is commonly used.

[–] marcos@lemmy.world 15 points 2 weeks ago (2 children)

Your DSL isn't embedded on a Turing complete language. That was your mistake.

[–] deadbeef79000@lemmy.nz 15 points 2 weeks ago (1 children)

YAML has entered the chat.

[–] marcos@lemmy.world 6 points 2 weeks ago (1 children)

Well, for all Turing complete languages around, you picked that one?

Using Blank Space or Malboge would be the wrong answer too.

[–] deadbeef79000@lemmy.nz 6 points 2 weeks ago

It seemed to best fit the theme of the thread.

[–] Unpigged@lemmy.dbzer0.com 2 points 1 week ago (1 children)

So... How about Conway's life for DSL?

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

That...

Wasn't on my enumeration of bad options :)

[–] Unpigged@lemmy.dbzer0.com 2 points 1 week ago

I wonder can you build a CI/CD framework what runs on life?

[–] SubArcticTundra@lemmy.ml 7 points 2 weeks ago (1 children)

If your DSL has loops tyen it should be a Python library

[–] SubArcticTundra@lemmy.ml 1 points 2 weeks ago (1 children)
[–] trem@lemmy.blahaj.zone 8 points 2 weeks ago (1 children)

Gradle uses Groovy or Kotlin for its DSL, though...

[–] Chais@sh.itjust.works 2 points 2 weeks ago (1 children)

So python compiled to JVM-bytecode.

[–] lukalix98@programming.dev 4 points 2 weeks ago
[–] Supercrunchy@programming.dev 7 points 2 weeks ago (1 children)
[–] hypna@lemmy.world 10 points 2 weeks ago

You either put it in the DSL or people start writing generators for your DSL.