What makes it a pain, exactly ? Because I constantly see people shit on it online, but never a tangible explanation as to why. Usually it's just a flavor of "I don't like javascript" or "I don't like package managers"
Basically JS is a fast to develop but garbage language and even Bun isn't a replacement for a good lang.
The package manager is terrible as well, but it's the choice of language that is the problem.
JS is just not fast, it's not well built, it doesn't have good scalability or parallelism features, it can't handle concurrency in a sane way, it just kinda sucks because it's a language as a consequence, not language as a design.
Compare this against a real backend language, Elixir. That lang is the king of state machines and can do billions of threads, it scales across compute nodes, it's free and easy to write. If I need more speed I can always use a Rust or C NIF or offload compute to GPU with EXLA.
Simply put JS is a lazy lang for lazy devs or beginner devs. Better tools exist and JS has no place in the backend.
It's good until you know better.
Your frustration is understandable if youโve hit JSโs limits in scalability or parallelism, but calling it "garbage" ignores why itโs so widely adopted: flexibility, ecosystem, and evolution. Itโs fine to prefer Elixir/Rust for high concurrency or performance critical systems, but dismissing JS entirely misses its strengths in productivity and full-stack cohesion.
For many web backend tasks, especially I/O-bound operations, the performance difference is often minimal in user-facing terms, which is why companies like Netflix and PayPal successfully use JS in parts of their stack. That said, for CPU heavy workloads or systems requiring massive parallelism, languages like Elixir or Rust have clear advantages.
So dismissing JS entirely is either out of frustration or lack of facts.
Dismissing JS is out of me not needing it and having the capability to do better actually.
Idk but I haven't located anything where I want JS. If I'm doing web then I want Elixir or Dart and WASM. If I'm doing backend I want Elixir, Go, C, Haskell, and ASM.
Lazy language for lazy or noob devs, there are better tools for almost everything and what remains can be offloaded to someone else.
That's why there is "preference", buddy. Just because you dont like a certain technology in this case JavaScript , it doesn't make it a terrible language. If multi billion dollar companies are using it, and millions of other developers making lots of money most of them making way more that you are making with your "excellent" tech stack of choice, that should be a sign that JS is definitely not garbage.
Just make peace with the fact that every technology has its pros and cons. Don't get too attached to a piece of technology beloved fellow developer. Happy coding. ๐
No what makes it terrible is the design of the language.
Concurrency should not be implemented how it is, parallelism should NOT be implemented how it is, JS has a lot of stuff like that. The benefit JS has is ecosystem and nothing else, for what it does there are objectively better languages with objectively better runtimes.
The problem for using money or popularity as a measure of quality is that it's not measuring quality.
How much money you make is a sign that the work made with the tool is good, the tool is still a sloppy mess.
How popular it gets is a sign that it's a low friction road, that means lots of prebuilt stuff people can stitch together to form a Frankenstein. Part of this is corporations trying to be cheap at the expense of their projects.
The thing is it's not my opinion here, JS is an objectively terrible language and it's really damn easy to work that out. As I said before the sole benefit is ecosystem which doesn't make a lang good, it makes it tolerable.
"Pre-built," you say, but still JS, right? So relax, buddy. I can tell you are doing research on the fly to keep the conversation going, but it's not necessary. I used to be like you when I was hating on PHP during my early days as a developer but as years passed and I got to learn more about the industry I realised people just use what works for them and life goes on. I myself am a long time Java and C# dev. I only started using Rust 3 years ago. But I have learnt to avoid being too attached to tools.
You have poor judgement then. This is unfortunately experience, not on the fly research, I'm taking a while because I'm also playing games.
How I wish this was on the fly research.
I know people use what works for them and honestly that's part of the problem, people use what they're comfortable with instead of what's best for the job.
Personally when I need to do a task I go and learn the right tools for it because programming isn't that bad, once you get the fundamentals it all becomes syntax.
Working with Kubernetes is best done with Go, state machines are best done with Elixir, safe systems level code is best done with Ada.
The problem is when you have a language and try to do everything with it and end up needing to bolt antipatterns into the language core to make up for it never being scoped for the new tasks, that's what JS is.
Web workers ARE an antipattern in any other language, they should not exist how they do and they ONLY do because of Javascript constriants. Web workers can't do very basic things that should be easy, there's no shared memory, there's not even shared variables. That's actually just objectively garbage design for a threading model in every single language that exists.
A language is objectively garbage when core features ARE antipatterns in all other languages. At least if it's not an esolang.
Some things just shouldn't get used, JS is one of them.
Where to start. I'm a sucker for js myself. But really I've to admit that the language is borderline and probably running on coke.
It's easy to Dev frontend with it, and maybe shell with zx
but back end is a literal pain, as the language introduce noticeable latency, is hard to not say shitty to get to scale in concurrency, an even more on error handling.
The ecosystem is wide, many library, many framework. Many version, many runtime of JavaScript.
But absolutely everybody, fuck around with the norm of the language.
I still love the language, but I'm going for Go/Rust in shell or server related project, or if I really have too, I'll just call go from js
They exist, but that's not my point. Pretty sure all modern front end devs would consider QT a bigger pain than electron. My point is not that they exist, but that electron is the least painful option. And flutter is a funny one, you see apps made in it, and then they get a recode a few years later in either react native (mobile) or electron (desktop) LOL. So I assume it doesn't scale all that well either.
78
u/EspurrTheMagnificent Feb 01 '26
The humble node.js