this post was submitted on 11 Jan 2026
368 points (92.8% liked)

Programmer Humor

28409 readers
1226 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
 
top 50 comments
sorted by: hot top controversial new old
[–] tatterdemalion@programming.dev 2 points 5 hours ago

Someone explain the Rustacean failing to support MacOS.

[–] dreadbeef@lemmy.dbzer0.com 7 points 1 day ago (1 children)

ocaml and haskell and erlang power like... a shitton of industry production code. If erlang software disappeared, internet dies for a bit until people replace all the broken routers.

[–] Kache@lemmy.zip 2 points 22 hours ago* (last edited 22 hours ago) (1 children)

Isn't functional stuff closely related to type theory & type systems in all langs? In that sense, it's prevented whole classes of bugs from ever getting to prod in the first place.

Responsible for 0% of code in production

Best code is no code at all

[–] Crazazy@feddit.nl 1 points 5 hours ago

Depends very much on the language you're using. Haskell and ocaml do fall into that category, whereas erlang and scheme are also functional languages with fairly weak typing.

If there is one thing that connects functional programming as a whole, it is that in FP, program flow is managed mostly through function application, instead of if statements and for/while loops.

[–] termaxima@slrpnk.net 8 points 1 day ago (1 children)

Proud imperative stoneager here 🦍

[–] Dhar@lemmy.ca 2 points 1 day ago

Cavepeople together strong!

[–] red_tomato@lemmy.world 125 points 1 day ago (9 children)

The OOP boilerplater is the only one with a job.

[–] rainwall@piefed.social 115 points 1 day ago* (last edited 1 day ago) (1 children)

Imperative stonager works there too. You've just never seen him because he hasen't accepted a meeting invite is 14 years.

[–] pinball_wizard@lemmy.zip 37 points 1 day ago

You've just never seen him because he hasen't accepted a meeting invite is 14 years.

And counting!

load more comments (8 replies)
[–] craftrabbit@lemmy.zip 9 points 1 day ago (1 children)

I've been shifting around, but never to the OOP boilerplater. I despise Java.

load more comments (1 replies)
[–] Jankatarch@lemmy.world 5 points 1 day ago

More like mix and match your path lmao.

[–] bdonvr@thelemmy.club 44 points 1 day ago (3 children)

Watches Computerphile, thinks it's actual programming

What is this even supposed to imply

[–] call_me_xale@lemmy.zip 31 points 1 day ago (1 children)

Yeah, I'm kinda confused by that one too—Computerphile is CS theory, not software engineering.

[–] sukhmel@programming.dev 16 points 1 day ago

I think, the point is Haskell is more CS theoretical than practical language and anyone who uses it (or any other FP) has never written a single line of production code (the last statement is even in the meme)

Personally, I love that series. I guess whoever made this meme thinks people who watch the show are trying to implement their code examples in production.

load more comments (1 replies)
[–] palordrolap@fedia.io 20 points 1 day ago (2 children)

history | grep -E '(sed|grep|awk|perl)' | wc -l 107

Dang. That's out of 1000. I need to up my game. Also three of those seds are part of something with a -basedir and don't count.

So yeah, about 10% of my commands are iterating shell pipe things for poops and giggles, I guess.

... and this got me going down the rabbit hole of writing a filter for my history to pull out the first command on the line. This is non-trivial because of potential preceding variable assignments. Most used commands are currently apt and man and ls. I think apt is a Spiders Georg situation because the system is fairly fresh and I keep finding things that I haven't installed yet. Also I went through a patch of trying to parse its output.

... oh, er... unga bunga.

[–] flying_sheep@lemmy.ml 1 points 21 hours ago* (last edited 21 hours ago)

I just use nushell’s builtins instead of wrangling with IFS and bash idiosyncrasies. It's been years since I've corrupted data by parsing text wrong.

But even if someone doesn't want that: apart from using it in legacy scripts, grep is just a strictly less useful ripgrep these days, no?

$ history | grep -E '(sed|grep|awk|perl)' | wc -l
50
$ history | wc -l
500

Checks out perfectly.

[–] freohr@lemmy.world 13 points 1 day ago

Uses neovim with gruvbox theme on arch

Damn, why are you calling me out personally? Though I use it to write python scripts and LaTeX, not rust...

[–] PokerChips@programming.dev 38 points 1 day ago (1 children)

I feel like the author is a MacBook user.

[–] yogurtwrong@lemmy.world 7 points 1 day ago

Imperative stoneagers getting an old MacBook from somewhere and going "huh, I guess its UNIX" is probably true though

[–] goatinspace@feddit.org 11 points 1 day ago
[–] Atlas_@lemmy.world 18 points 1 day ago (1 children)
load more comments (1 replies)
[–] 6nk06@sh.itjust.works 33 points 1 day ago (1 children)

I was triggered at every panel, it's unacceptable!

[–] passepartout@feddit.org 30 points 1 day ago (2 children)

I hope no one got left unoffended

[–] dantel@programming.dev 2 points 5 hours ago

The imperative stoneager feels like the most favored one, there are no real negatives listed there. All that’s listed are things they usually pride themselves on.

load more comments (1 replies)
[–] itkovian@lemmy.world 23 points 1 day ago (1 children)

I don't belong to any of the above. Am I even a programmer at this point?

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

I belong to all of them. Same question.

[–] sukhmel@programming.dev 11 points 1 day ago (1 children)

You've transcended programming

load more comments (1 replies)
[–] ArrowMax@feddit.org 12 points 1 day ago (2 children)

Just finished an assignment for uni: Memory safety in Rust: Mechanisms and limits - a comparison to C/C++.

Fuck.

Great overview of Rust's weaknesses and strengths:

Li et al. 2024 Rust for Linux: Understanding the Security Impact of Rust in the Linux Kernel

load more comments (2 replies)
[–] andioop@programming.dev 20 points 1 day ago (3 children)

OOP boilerplater except for the Windows bit; trying to slowly move off proprietary software and choose open source when I can

[–] Electricd@lemmybefree.net 4 points 1 day ago (1 children)
[–] andioop@programming.dev 2 points 17 hours ago

also a JetBrains enjoyer :( one day I'll teach myself to like VSCode as much as I like JetBrains

load more comments (2 replies)
[–] potatoguy@lemmy.eco.br 24 points 2 days ago (3 children)

Hear me out:

Mixing OOP and functional code to abstract the shit out of everything making 5k loc in around 500 loc in java. You can do magic using this trick.

[–] termaxima@slrpnk.net 2 points 1 day ago

Yes, you can make money and electricity magically disappear !

[–] passepartout@feddit.org 25 points 1 day ago (8 children)

Functional programming in Java is kind of an afterthought and it shows. That's one of the reasons why Scala was created!

[–] Custodian6718@programming.dev 2 points 6 hours ago* (last edited 6 hours ago)

I mean Yeah it is an afterthought in the Sense of that Java was Originally an oop Language but fp in Java was added on very sensibly imo. I use functional Programming in Java a Lot and try to make Everything immutable where I can and honestly coding like that feels clean and very practical.

load more comments (7 replies)
load more comments (1 replies)
[–] 9point6@lemmy.world 22 points 1 day ago* (last edited 1 day ago) (3 children)

Oh, I guess I'm a stoneager with a penchant for functional elitism then.

Though I will admit OOP is valid for involved data modelling, everything else should be functional though.

I've also trained myself out of most short variable names for maintainability reasons

[–] masterspace@lemmy.ca 18 points 1 day ago* (last edited 1 day ago) (11 children)

Outside of the for loop counters i and j, short variable names are awful. Coming back to old code written with abr var nams is like talking to someone in the military who just constantly throws out jargon and acronyms that they know you don't know.

But so are Java style ObserverFactoryManagerTemplateMachinistTemplater names.

There's a sweet middle ground of short, but actually descriptive name. Sometimes it's not possible but that's usually a code organization / language / framework smell.

Too short variable names is usually a sign that you need to use a proper ide, with auto complete, or that you need to use a proper build process that will minify your code after the fact.

Too long names are usually a sign that your module of code (function, class, namespace, etc) is too large, or that your language/framework naming conventions are too strict, or the language doesn't encapsulate scope properly.

load more comments (11 replies)
load more comments (2 replies)
[–] someacnt@sh.itjust.works 8 points 1 day ago

That's such a way to dismiss the theory and academia

[–] not_woody_shaw@lemmy.world 19 points 2 days ago (1 children)

"Writes code on paper to avoid side effects" - ROFL

load more comments (1 replies)
load more comments
view more: next ›