DEV Community

Discussion on: Node.js – the developer’s Swiss army knife

Collapse
 
saitonakamura profile image
Michael Bashurov • Edited

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).

Collapse
 
brainwipe profile image
Rob Lang • Edited

Agreed! I quite like C# with .NET core for data science as I can get it to scale nicely on Linux docker containers or Hadoop clusters.

I found when writing my specifically odd types of dynamic neural nets in JS is that JavaScript's difficulty with number precision and dates always left me uncertain that I wasn't losing data.

I'm keen to try compiling C# to wasm.

Collapse
 
lexlohr profile image
Alex Lohr

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().