Hacker News new | ask | show | jobs
by igl 3484 days ago
Comparing apples to oranges
2 comments

Downvoted ofc. To be more elaborate: Node never claimed to do multithreading or being good at parallel processing. The shocking discovery of this article is:

1) The Author knows little about JS.

2) Picking on a scripting language which has 2 weeks + 2 years of development vs a 25 year old monster that is the playground of the brightest minds in CS, is easy.

Unfortunately the article did also not go into details of how the event loop works or shows how you can break out of the single thread with the tools that ARE available to you. I guess the idea was to write a hype article for Haskell. Here are some more ideas for the author:

Comparing Haskell and C++ type systems.

Comparing Haskell and Clojure functional purity and lazy evaluation.

Comparing Haskell and Java deterministic parallelism.

How so?
Node has no built-in concurrency just callbacks. The whole point is nonblocking io in node not multithreading.
Node does use threads for async io, it's just abstracted away from the main loop. The bigger issue, is the cpu bound code is a bad use case for Node, and it's known to be. There are options to run this type of code out of the main process though.

You can scale node, via the same techniques you use to scale anything across servers, you just do it sooner with node in order to better utilize a larger server, or use multiple servers sooner. Node is great for just about any io bound workflow.

Concurrency using event loops is still concurrency. Older cooperative concurrent systems used to work that way.