Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> Most arguments, even in this thread already, are just wrong. Obviously they have never had any experience with the Node.js ecosystem and another.

What makes them obviously wrong? To me they sound like sound arguments by people who actually use(d) it.



> no threads

> node does not have a concurrency and parallelism story

> standard library is tiny

Also claims like "async makes your program more difficult to reason about" without any explanation.

I hereby claim that goroutines and mutexes make your program more difficult to reason about.

> the ecosystem is an absolute dumpster fire

I am super curious which ecosystem that person would consider better.


I totally agree with you, most arguments are obsolete at best, and ignorant at worst.

> no threads

Worker threads are a thing since Node v10. Also, I like the single thread concurrency, it makes state management easier (since there is no race condition).

> node does not have a concurrency and parallelism story

  - https://nodejs.dev/learn/understanding-javascript-promises
  - https://nodejs.org/api/cluster.html
> standard library is tiny

You have sockets, http(s) (even http2), multiprocessing, readline, streams, timers, promises, JSON, etc...

They want String.capitalize()? They would complain about the implementation being bloated because it handles edge cases like other alphabets, etc...

> async makes your program more difficult to reason about

That may have been true with the callback hell before async/await. But now, it's just non-sense.

> the ecosystem is an absolute dumpster fire

Ironically, for an ecosystem based on the philosophy of "Don't reinvent the wheel", there are a lot of packages that does the same thing.

There is the leftpad fiasco, the colorette/nanocolors "scandal", the is-odd/is-even packages, ...

But as I said in this thread, this is not Node's fault, nor npm's fault. This is the developer's fault.

Cargo (rust), Mix (elixir), pip (python), they could all serve such an ecosystem.

It's up to the developer to be careful about his dependency tree. For example, if I need VueJS which depends on a specific library, I'll avoid installing another library doing the same thing.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: