3 ms·
> And make concurrency a core pillar! For such a core pillar they are extremely light on details. All you can see in the docs is they basically have: - green
by illiarian 4y ago
> And make concurrency a core pillar!
For such a core pillar they are extremely light on details. All you can see in the docs is they basically have:
- green threads (maybe? no idea, no details on how async is executed)
- "async calls" are blocking. Literally the equivalent of `x = await y()`
- to have non-blocking calls you can use `Task = spawn(function)`, and then can optionally wait on it with `Task.await()`
- there are a few syntax sugars on top (like `race` aka `Promise.race`). And some of them make no sense (`branch` is literally `spawn`, why does it even exist?)
That... is not a "core pillar". It's a lazy minimal bare-bones implementation of decades-old ideas.
Edit. Compare with a language where it actually is a core pillar: https://erlang.org/download/armstrong_thesis_2003.pdf https://erlang.org/download/armstrong_thesis_2003.pdf
- waboremo 4y agoDisagreeing with some of the decisions they've made in regards to concurrency doesn't negate it from being a core pillar. Neither does wanting more information on why they've made the decisions that they have. This is common sense.