Remix.run Logo
osigurdson 7 hours ago

At least Go didn't take the dark path of having async / await keywords. In C# that is a real nightmare and necessary to use sync over async anti-patterns unless willing to re-write everything. I'm glad Zig took this "colorless" approach.

rowanG077 7 hours ago | parent | next [-]

Where do you think the Io parameter comes from? If you change some function to do something async and now suddenly you require an Io instance. I don't see the difference between having to modify the call tree to be async vs modifying the call tree to pass in an Io token.

messe 7 hours ago | parent [-]

Synchronous Io also uses the Io instance now. The coloring is no longer "is it async?" it's "does it perform Io"?

This allows library authors to write their code in a manner that's agnostic to the Io runtime the user chooses, synchronous, threaded, evented with stackful coroutines, evented with stackless coroutines.

rowanG077 6 hours ago | parent [-]

Rust also allows writing async code that is agnostic to the async runtime used. Subsuming async under Io doesn't change much imo.

neonsunset 6 hours ago | parent | prev [-]

[dead]