In a July 2017 article, Node.js Foundation surveyed developers around the world asking them how they use Node.js. As it turns out, Node.js is taking over the world of business applications and the enterprise by storm and is rapidly supplanting platforms like Java which has to do with a few factors.
Humanity tends to invent tools and build platforms on which we then make more complex tools and platforms. Consider the evolution of an enterprise developer.
Back when dinosaurs roamed the data centers, enterprise developers were writing financial systems in assembler. Over time, languages like PL/I and COBOL have invented that improved developer productivity. Eventually, we got Java, C++, C#, etc.
By now, enterprises built out API ecosystems supporting critical business processes. Add to the mix cloud APIs, and now we can rapidly develop new applications as API mashups.
Node.js does not outperform Java at CPU and memory intensive tasks and probably never will. That is not where it shines, however.
Where it does outperform Java, however, is in IO-intensive use cases. For networked API-driven applications that are a yet another point in favor of Node.js as an API mashup platform.
Increased developer productivity
I remember the days when to build out a Java-based web server one had to get an application server like Tomcat, JBoss, WebLogic, or WebSphere. Those are expensive resource hogs.
As a Java engineer I’ve long advocated the approach of bypassing JEE application servers altogether. In Java, that is not trivial.
The perfect storm