I finally escaped Node
We went away from node as a backend technology for a bunch of reasons. Here&#x27;s a list of the biggest pain points:<p>- Lack of a good standard API; compared to environments like Java, C# or Go, node&#x27;s standard library is significantly sparse.<p>- The tendency for small libraries&#x2F;frameworks leads to a very high number of third party code with all the problems attached; bigger attack surface, licensing challenges, it&#x27;s economically impossible to vet and review dependencies<p>- There&#x27;s a tendency in the ecosystem to abandon projects rather soon (~1-2 years) and to keep changing things. Further, we have had several situations where maintainers did not respect semver, combined with npm&#x27;s approach of updating patch versions upon installation, we have had too many broken builds from one day to another w&#x2F;out code changes. The state of documentation of a lot of projects is non-existent.<p>- Lack of multi threading. We have used all the options, including RPC implementations, but that doesn&#x27;t even come close to approaches like Java threads or go routines. Neither in performance, nor in maintainability.<p>- Lack of typing. That&#x27;s probably the biggest one. Yes, we use TypeScript, quite extensively even. But TypeScript brings its own problems. First, it&#x27;s only declarative. If you have a `something: number`, there&#x27;s no guarantee that it&#x27;s actually a number upon execution, so if you have a bug in a layer interacting with another system, that might fail a couple levels deep. You hence end up with type checks at some places and you cannot really trust it anyway. Second, TypeScript&#x27;s tooling is slow and has some annoying quirks (e.g. aliases not being resolved upon compilation). Having aliases allowing to shorten import paths is a big, big win, though. Third, the typing, given the complexity of JavaScript, can be confusing, sometimes even seemingly impossible to get right.<p>Is node a bad technology? Not at all. I&#x27;d not chose it for enterprise, big or long-lived projects, though. It&#x27;s a very good technology for a lot of things, especially smaller projects. We are building on Java + Spring Boot now.