The NPM ecosystem can be frustrating and annoying sometimes but today nodejs is a solid server runtime.
The NPM ecosystem can be frustrating and annoying sometimes but today nodejs is a solid server runtime.
But the API, the client language, the ecosystem, and even the idea are bad, IMO.
Bad API example: Tell me how to deal with time zones in Node without pulling in a big third party library. Answer: You can't. So, a "scalable" backend platform can't handle datetimes from different time zones? Neat!
"Well, that's JavaScript's fault" you say. Node certainly has (a few) APIs that don't apply to the frontend, so why not add more of the important ones for backend work?
Or, maybe JavaScript really just doesn't belong on the backend at all...
Not to mention that it's single-threaded, so the answer to scaling up better is to just run more instances. -_-
See? I should've stayed quiet. ;)
Yeah, this sucks. It's impossible to do any actual processing in javascript since functions that don't return immediately will clog the event loop. Why can't we have javascript code that runs asynchronously and reports completion and results as events? Even browsers seem to have this now. I tracked issue #2133 on GitHub for a long time and nothing materialized.
Not sure if Node.js still lacks this feature. If so then it means Node.js is nothing but an I/O scripting platform. You get events and you make the system copy data from some source to some destination in response. Any sort of actual processing means latency becomes unacceptably high.
[1] https://nodejs.org/api/worker_threads.html#worker_threads_po...