5 ms·
> In this approach, threads own their data, and communicate with message-passing. This is easier said than done, because the language constructs, primitives, an
by macintux 4y ago
> In this approach, threads own their data, and communicate with message-passing. This is easier said than done, because the language constructs, primitives, and design patterns for building system software this way are still in their infancy.
“Infancy”? Erlang was invented in the 80s.
- moonchild 4y agoAnd the CSP paper dates to 1978.
- tonnydourado 4y agoOP does say system software, and although Erlang can have amazing uptime, I'm not so sure about it's raw performance story (on the other hand, I do remember seeing some insane benchmarks from a elixir framework, so, maybe I'm wrong). Also, other than Erlang and Elixir, which other reasonably mainstream language has this as first class features? Even Rust doesn't really put queues and message passing front and center, it just makes it easier to get away with doing traditional thread programming. Things can be old in years since discovery/invention, but still in it's infancy in usability and adoption.
- kubanczyk 4y agoGo has channels (`chan`) which it considers more native than e.g. Mutex. The latter is in a stdlib, the former is a feature of the language proper. Alas, the Go ecosystem could use more channels. I'd say that the adoption is still at the infancy stage. I wonder whether there are any practical shortcomings or is it just a readability tradeoff (the Mutex tends to be super-readable, where the channels not so).
- Lammy 4y ago> Also, other than Erlang and Elixir, which other reasonably mainstream language has this as first class features? Ruby 3.0+ with Ractors: https://docs.ruby-lang.org/en/master/ractor_md.html#label-Communication+between+Ractors https://docs.ruby-lang.org/en/master/ractor_md.html#label-Co...
- bjourne 4y agoTruth be told, it is trivially easy to create deadlocks even in a pure message-passing environment such as Erlang. Message-passing is way oversold and doesn't solve as many problems as people think.
- whalesalad 4y agoMessage passing is oversold in many environments that aren’t Erlang but I think it’s safe to say they’re the original, gold standard.
- dxhdr 4y ago> Message-passing is way oversold and doesn't solve as many problems as people think. My experience with Erlang has been that it solves a great deal of concurrency problems and is way undersold.
- mbrodersen 4y agoIt is trivially easy to make any technology not work correctly. That doesn’t mean that those technologies are not worth using.