this post was submitted on 28 Dec 2025
355 points (95.4% liked)

Programmer Humor

28076 readers
1255 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
 

Post:

If you’re still shipping load‑bearing code in C, C++, Python, or vanilla JavaScript in 2025, you’re gambling with house money and calling it “experience.”

As systems scale, untyped or foot‑gun‑heavy languages don’t just get harder to work with—they hit a complexity cliff. Every new feature is another chance for a runtime type error or a memory bug to land in prod. Now layer LLM‑generated glue code on top of that. More code, more surface area, less anyone truly understands. In that world, “we’ll catch it in tests” is wishful thinking, not a strategy.

We don’t live in 1998 anymore. We have languages that:

  • Make whole classes of bugs unrepresentable (Rust, TypeScript)
  • Give you memory safety and concurrency sanity by default (Rust, Go)
  • Provide static structure that both humans and LLMs can lean on as guardrails, not red tape

At this point, choosing C/C++ for safety‑critical paths, or dynamic languages for the core of a large system, isn’t just “old school.” It’s negligence with better marketing.

Use Rust, Go, or TypeScript for anything that actually matters. Use Python/JS at the edges, for scripts and prototypes.

For production, load‑bearing paths in 2025 and beyond, anything else is you saying, out loud:

“I’m okay with avoidable runtime failures and undefined behavior in my critical systems.”

Are you?

Comment:

Nonsense. If your code has reached the point of unmaintainable complexity, then blame the author, not the language.

top 50 comments
sorted by: hot top controversial new old
[–] echodot@feddit.uk 11 points 13 hours ago

So there is apparently a problem with languages such as JavaScript and the solution is to use languages such as TypeScript.

Wut?

[–] pelya@lemmy.world 27 points 20 hours ago (1 children)

TypeScript and safety-critical paths should not be in one sentence.

[–] mEEGal@lemmy.world 3 points 17 hours ago (1 children)

wut ?

Why ?

Genuinely curious to learn from your arguments

[–] pelya@lemmy.world 19 points 16 hours ago

It's Javascript with types. You are still using one hundred NPM packages to do the simplest thing. Any string can be JSON. And Node is single-threaded, so if you plan to create some kind of parallel computation, you'd need to run 16 Docker containers of your Node server, one per CPU core, with NGINX or some other load balancer at the business end, and hope that your database engine won't reorder transactions. And yeah, Docker is mandatory, because Node version in your latest Ubuntu release is already outdated.

[–] sheepishly@fedia.io 18 points 21 hours ago (2 children)

don't just m-dash

chat gippity

[–] Ashelyn@lemmy.blahaj.zone 7 points 18 hours ago

Don't just state—regurgitate!

[–] chatokun@lemmy.dbzer0.com 13 points 21 hours ago

Maybe, but always remember LLMs are trained on real people. Some people naturally use similar styles to some LLM tica as it was stolen from them in the first place.

[–] ExLisper@lemmy.curiana.net 49 points 1 day ago (4 children)

Just don't do bugs. How hard is that?

[–] Phunter@lemmy.zip 2 points 8 hours ago

If I don't have documentation or defined features, then I can't do bugs!

[–] douglasg14b@lemmy.world 6 points 13 hours ago

According to all teams I've worked on.

Pretty fucking hard.

I know this is satire, But really though better languages that make various classes of defects unrepresentable reduce defects. It's wild that such a statement needs to be made, but our industry is filled with folks who don't critically think about decisions like these.

[–] MIDItheKID@lemmy.world 9 points 22 hours ago

Like the age old advice for getting better at Smash Brothers - Don't get hit.

[–] lemming741@lemmy.world 7 points 23 hours ago

My second favorite prompt, behind "Do not hallucinate"

[–] Atlas_@lemmy.world 18 points 1 day ago (1 children)

Go and Python and Typescript all have their own footguns.

I assume Rust is the same, but haven't used it personally to see

[–] danhab99@programming.dev 15 points 21 hours ago

Rust is the foot gun, it's so perfect that you genuinely cannot just sit down and type out what you need.

[–] Scrath@lemmy.dbzer0.com 58 points 1 day ago (10 children)

As an embedded dev, good luck not using C

load more comments (10 replies)
[–] wer2@lemmy.zip 10 points 23 hours ago (1 children)

Sounds like they want Ada Spark and not Rust.

[–] baines@lemmy.cafe 1 points 24 minutes ago

i laughed pretty hard thinking isn’t that just ada

so we got rid of ada for c++ now from c++ to rust chasing ada lmao

[–] for_some_delta@beehaw.org 18 points 1 day ago (2 children)

I don't get it.

Maybe the joke is nothing complex is written in fad languages?

Maybe the joke is the discounting of peer review and testing?

Maybe the joke is the lack of devops knowledge where Python is extra steps over other scripting languages?

It seems like promotion of fad languages. When I was younger, I chased fads and lost hard. I'll stick with C and C++. Run-time failures happen to everyone including fad languages. Here's looking at you Rust CVE's. Better to have loved and lost, something, something.

[–] elkien@lemmy.today 1 points 6 hours ago

Plenty of complex things have been written in fad languages. And not only complex things, COBOL was one of the biggest fad languages of all time.

[–] echodot@feddit.uk 4 points 13 hours ago

I'm completely confused by why they seem to think it's impossible to have coding errors in rust. I'm also confused as to why they seem to think that errors are actually a problem. You get them you fix them. Who cares about what language you do it in.

This stinks of somebody who's been in the industry for about 2 years and now thinks they're hot shit.

[–] jonathan7luke@lemmy.zip 98 points 1 day ago

I'm not even going to bother commenting on that train wreck of a post, but I just wanted to mention that I hate the writing style of programming-related LinkedIn posts. They're just chock-full of sweeping generalizations presented as absolute truth in an extremely patronizing tone.

Why can't people just say, "In my opinion, X technology is a better fit for Y situation for Z reason," instead of "Every time you encounter X, you must do Y, otherwise you're dead wrong."

It's just simultaneously so arrogant and also aggressively ignorant. If someone spoke to me like that in real life, I would never want to speak with them again. And these people are broadcasting this shit to their entire professional network.

[–] Shirasho@lemmings.world 93 points 1 day ago* (last edited 1 day ago) (23 children)

"Blame the author, not the language"

Says the person who screams they have never worked professionally with a team before.

There is no excuse to not use statically typed, safe languages nowadays. There are languages that let you build faster like Python and Typescript, but faster does not mean safer. Even if your code is flawless it still isn't safe because all it takes is a single flawed line of code. The more bug vectors you remove the better the language is.

[–] Arkouda@lemmy.ca 68 points 1 day ago (2 children)

Even if your code is flawless it still isn’t safe because all it takes is a single flawed line of code.

If there is a single flawed line of code, the code isn't flawless.

load more comments (2 replies)
[–] rtxn@lemmy.world 34 points 1 day ago (3 children)

let you build faster like Python

I have to write so much boilerplate code to make sure my objects are of the correct type and have the required attributes! Every time I write an extension for Blender that uses context access, I have to make sure that the context is correct, that the context has the proper accessor attributes (which may not be present in some contexts), that the active datablock is not None, that the active datablock's data type (with respect to Blender, not Python) is correct, that the active datablock's data is not None... either all that or let the exception fall through the stack and catch it at the last moment with a bare except and a generic error message.

I used to think that static typing was an obstacle. Now I'm burning in the isinstance/hasattr/getattr/setattr hell.

load more comments (3 replies)
load more comments (21 replies)
[–] grue@lemmy.world 66 points 1 day ago (13 children)

Python isn't "untyped;" it is, in fact, strongly-typed. (And is markedly different than and superior to JavaScript on that point.)

This rant feels like it was written by an OO programmer who was never able to wrap his head around functional programming.

[–] expr@programming.dev 4 points 21 hours ago

Why are you talking about functional programming? Python sure as hell isn't FP.

load more comments (12 replies)
[–] Bane_Killgrind@lemmy.dbzer0.com 33 points 1 day ago (1 children)

Nonsense. If your code has reached the point of unmaintainable complexity, then blame the author, not the language.

I feel like there's about one person that can cast this stone, and that's because preventing this has turns Torvalds into an abusive bridge troll sometimes, but he's actually been successful.

[–] bleistift2@sopuli.xyz 14 points 1 day ago

Well, the kernel is unmaintainably complex. Linux saves his sanity by not looking deeply into modules and only inspecting the surfaces.

[–] bleistift2@sopuli.xyz 52 points 1 day ago* (last edited 1 day ago) (18 children)

I agree with the post. Setting up typescript takes an hour or two if you have no clue what you’re doing. In return you get the absence of (the equivalent of) null pointer exceptions.

I chuckle every time I find an NPE in the Java backend. Doesn’t happen to me. Can’t happen to me.

Sidenote, while I’m already gloating: Once the backend code had an error where they were comparing two different kinds of IDs (think, user ID and SSN), which gave wrong results. This error can’t happen to me either, because I type my IDs such that they are not comparable. A strong type system really is a godsend.

load more comments (18 replies)
[–] thedeadwalking4242@lemmy.world 7 points 1 day ago (1 children)

I half way agree. I always say form shapes function. Sure you can write good code in any language. But some encourage it more then others. Ultimately it's the programmer fault when things get over complex though

[–] douglasg14b@lemmy.world 2 points 13 hours ago* (last edited 13 hours ago)

Honestly, I more than half agree because the factor most seem to conveniently ignore is that languages and environments that encourage better and safer code are aimed at the lowest common denominator.

The lowest common denominator of developers are the ones that benefit the most from a reduction in defects or unsafe code they may produce. They are the biggest pool of developers. And in my experience, the ones least likely to proactively take measures to reduce defect rates unless it's forced upon them and/or baked into their environment.

They are the ones that will slap any in typescript to resolve errors instead of actually resolving them, or the ones that will use dynamic in C# instead of actually fixing the bad design ... etc

load more comments
view more: next ›