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.


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.
Why are you talking about functional programming? Python sure as hell isn’t FP.
It’s also dynamically typed and inferior to TypeScript.
Depends enirely on the usecase. Python is loved for data processing but python GUIs get messy. And so do JS and TS GUIs.
I’ve never met a desktop GUI bigger than a single page with buttons that wasn’t messy and complicated.
Granted, I’m used to Qt in C++ and python, so I don’t think I’m the best sample collector.
Typescript fucking sucks.
Why?
Yeah, plus it has type hints and tooling to make said type hints mandatory.
Also, like, fuck golang, it’s such a shit language and the compiler does very little to protect you. I’d say that mypy does a better job of giving you AOT protection.
I never understood why people like it. It’s a “new” language, and it still doesn’t seem to get the basics right. No proper null handling, and don’t get me started on
interface{}. It’s like they set out to build a better alternative to C++ while ignoring the other developments outside C/C++ for the past 15 years. The compiler is damn quick, though.I’ve dumped 18 years of C++ experience for Go in 2018, and never wanted to come back. Took me a couple of months to become accustomed.
The main Go’s feature is a green light for ignoring OOP baggage collected for decades, which makes writing code unnecessary burden. And Go have tools for not doing that.
Yes, sometimes it can be a bit ugly, but if you’re ready to trade academic impeccability for ease of use, it’s a real blast.
I’ve seen a lot of bad code in Go, which tried to do OOP things taught in school or books. Just don’t. Go requires a different approach, different mindset. Then everything falls in their places.
It took me a whole some text by compiler was supposed to be an error message, there were not any saying of any kind error or hints that it was in fact an error. It just printed some packages then exits with non-zero code.
Turns out it was import cycle.
Do you mean python has something to do with functional programming, or did I misread? Because I would say e.g. Typescript is (slightly) closer to FP than Python.
Yes. Python is a multi-paradigm language, but IMO proper “pythonic” python looks a lot more functional than OO, with liberal use of duck-typed list comprehensions and such.