←back to thread

3 points wkyleg | 1 comments | | HN request time: 0.199s | source

Right now, JavaScript scales well with a single-threaded event loop. Certainly not as fast as something like Go for async tasks, but enough to power much of the web and be easy to write.

Why hasn't anyone abstracted the event loop model to scale across multiple machines or utilize modern processors? Perhaps with something more like an Actor model or Erlang's BEAM?

It seems like just getting the JavaScript concurrency model as an abstraction over multicore or multi-machine concurrency would be one of the easiest ways to achieve this. I realize that this is still technically difficult, but programming tends towards "just porting things to JavaScript." I would love to have something like Phoenix framework, just built with JavaScript/TypeScript, and I can scale a back end by bumping size of a machine or scaling horizontally.

1. ActorNightly ◴[] No.42186591[source]
If you are talking about nodejs, there is https://nodejs.org/api/child_process.html

Same way that python does parallelism, by relying on the underlying OS to schedule threads and use multiple cores.

For JS running in browser, you probably don't want any allowance for such scheduling in the scripts, and let the JS engine in the browser automatically establish parallelism if needed.