Seems like there have been two approaches to languages.
The very high level languages, fun and slow, with async built in pretty much from the start, and good ergonomics.
And then the grindy and fast low level languages, with async shoehorned in later, way after simd and other things, and terrible ergonomics.
The key, I imagine, is that doing multi-threading or green threads or whatever "SAFELY" is extremely complicated, because it is. And so to remain fast and safe, a ton of complexity has to be pushed onto the user/programmer.
Seems like there have been two approaches to languages.
The very high level languages, fun and slow, with async built in pretty much from the start, and good ergonomics.
And then the grindy and fast low level languages, with async shoehorned in later, way after simd and other things, and terrible ergonomics.
The key, I imagine, is that doing multi-threading or green threads or whatever "SAFELY" is extremely complicated, because it is. And so to remain fast and safe, a ton of complexity has to be pushed onto the user/programmer.
Rust safe multi-threading is pretty simple, though. Async, perhaps not so much.
But they are two different things.
no code, just a wall-of-text. quite unfortunate really.