Re:Swift on the Server (2020)
by k_bx on Sunday April 25, 2021 @04:31PM
(#26936392)
I don’t know how Swift works, but from my Haskell experience, if your language needs async/await —- it’s already failing. Everything is async in Haskell, so you don’t need to think about it, and cannot accidentally make a mistake by blocking your async thread by calling sync code from it.
[ Parent
| on HN ]
Re:Swift on the Server (2020)
by nextaccountic on Sunday April 25, 2021 @04:44PM
(#26936502)
> Everything is async in Haskell, so you don’t need to think about it,
Then why does https://hackage.haskell.org/package/async exist?
I think what he means is that everything in Haskell is "async" because the language runtime is lazy and types can encode parallelism: monads and functors fro sequential, blocking code, while applicatives for independent code.
Not sure if it's actually correct though.
Nothing to do with laziness. It just means you cannot accidentally call blocking (sync) operation from a lightweight (async) thread and block a whole bunch of other lightweight threads like in Rust, C#, or other languages with explicit “async” keyword