It's very yellow header. I agree that node is great and become very mature in the last couple of years, but it's definitely not a Swiss's army knife. Event-driven programming is a great idea for i/o bound operations which is almost all of the api's. But single execution thread and dynamic nature shoots you in the foot in case of heavy cpu bound operations. Of course you can write a c++ module for node, but either way you gonna get more suitable instrument for this (some multithreaded stuff, like go, rust, c# or java). Machine learning and data science also struggles due to lack of tooling (AFAIK every non-data-scientific language sucks besides python).

I think the comparison to a swiss army knife is rather apt. It has multiple uses, but in quite many cases, it will only be a more or less poorly performing drop-in replacement for the real tools of the trade.

What I like about JavaScript is how it is developing as a language, a community and and an ecosystem. Sure, we won't see it in real-time-critical applications soon, but that's fine for now. Eventually, computers will become so fast that it won't make a difference anymore.

By the way, you can actually do multithreading in JS, in the browser either using Workers or WebGL and in node.js using childProcess.fork().