“Node.js is one of the worst things to happen to the software industry” (2012)
Disclaimer: I worked with Node.js full-time for about 14 months, ending about 9 months ago. I&#x27;m willing to admit that the following complaints may or may not be out of date, especially with ES6 and newer Node versions. Proceed with grains of salt at the ready.<p>There are a lot of things to like about Node.js, but the primary thing that bothers me about it is the obsession with async. It&#x27;s a language&#x2F;framework designed to make pretty much everything async.<p>In the real world, almost everything is synchronous, and only occasionally do you really want async behavior. By that I mean, you almost always want A, B, C, D, E, F, G in that order, and only occasionally would you say that you want async(H,I). But with Node, it&#x27;s the other way around. You assume things are async, and then specify synchronous behavior.<p>Instead of assuming A; B; C; D; E; F; G;, you wind up with a ton of code like A.then(B).then(C).then(D).then(E).then(F).then(G);<p>...I know that&#x27;s a contrived example, and I know you don&#x27;t really need to do it that way, but so many people do, and it really illustrates the point. In Node.js, you are explicitly synchronous &#x2F; implicitly async. Most other coding paradigms (including Go) better match what I consider reality, which is that everything is implicitly synchronous, and you specify async behavior when you need it.<p>Basically, I think it&#x27;s backward. But perhaps like the OP, I just can&#x27;t wrap my head around it.<p>The NPM stuff... well, I think all ecosystems have their pros and cons. I&#x27;m not a huge fan of NPM, but it does the job for the most part, and I&#x27;m curious as to how people would actually improve it, rather than just complain about it all the time. I don&#x27;t really have any good ideas (knowing nothing about how package management actually works under the hood).