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