I am not sure if node is still a viable web backend runtime. When it released originally, it contended with the likes of django, and RoR, but now we have much saner options like Rust, Go, Elixir on backend, I am not sure if the original appeal is there any longer.
Edit: By “saner” option i meant more scalable, performant and maintainable using stricter types.
It is because JS is used for frontend and fullstack is a thing and for business logic language doesn't matter and TS is actually quite usable.
Go and Rust eat mostly on perf heavy code and are more for rewrites that iterating on first version. I guess Go is also used at enterprises more as it's stable and has good libs. I would say that Go and Node are still eating some of Java lunch.
It's just that quality of libs in nodejs is kinda bad - especially for DB stuff. Prisma is something that starts to feel nice but not 100% sure how reliable it is. Lack of something like Rack or WSGI means there's little competition between web frameworks. Nest.js solves that a little. There's just isn't any big corporation using node for something serious or we would have good backend libs. Everyone uses Java or Go.
Ruby has Github and Shopify that pull it up but what's there is nodejs land? Only Meta (now Vercel?) with React from big players. Probably some current startups that will grow big will invest more in JS land. Seems like only VCs are interested in lowering the cost of business and throwing everything at cheap fullstack devs offshore :P
Ruby out of the box experience was nice but now you can have the similar with Next.js. Python seems to have fine libs but documentation lacks guidance and even I struggle as semi experienced dev. With Poetry it's usable for people that don't sit in ecosystem. Elixir is niche and also lacks typing, for most business code it doesn't make much sense.
I think Node.js doesn't have a big powerful ORM because the community isn't looking for one. Can't speak of everyone but I take a good query builder over a fat ORM any day.
I always thought the big original pull of Node was "your backend is similar to your frontend". Then when things like types come up you solve it with something like TS in one place and it applies to both. Looking at e.g. Deno's focus on doing that aim even better seems to back that up.
Are you implying RoR isn't a "sane" option anymore? I'd wager it's infinitely better and easier, for 99% of use cases, than the likes of Go, Rust, Elixir, etc.
I like the premise of Bun, and early speedups are impressive, but I'm not convinced by the project management yet. Lots of design decisions seem to be made arbitrarily (on a whim rather than deeply thought through), and want to see a track record of stability first.
I follow commentary from the dev team... there seems to be a tendency towards "this thing is useful, let's add it" without thinking through the larger API surface area or future issues adding those APIs will introduce. Not sure it was ready for v1 yet. If I were them I wouldn't be afraid to break things and increment the major version at this point.. but once you have real users you pretty much have to maintain your design decisions
I'd love to see these concerns turn out to be unfounded down the line! Also want to see Node adopt an incremental approach towards Rust or similar and focus more on performance in response
Deno I think just missed the mark by a wide margin out of the gate. Seemed to focus on things that nobody was asking for, and also hurt DevX. Perhaps the situation has improved more recently
Edit: By “saner” option i meant more scalable, performant and maintainable using stricter types.