logoalt Hacker News

simonaskyesterday at 10:19 PM4 repliesview on HN

You know what, I’ve heard people say this and thought “OK, maybe these other languages with GCs and huge runtimes really do something magical to make async a breeze”.

But then I actually tried both TypeScript and C#, and no. Writing correct async code in those languages is not any nicer at all. What the heck is “.ConfigureAwait(false)”? How fun do you really think debugging promise resolution is? Is it even possible to contain heap/GC pressure when every `await` allocates?

Phooey. Rust async is doing just fine.


Replies

usrnmtoday at 8:11 AM

Try golang, where they did the only sane thing: everything is async from the very beginning, no function colouring

show 1 reply
mrsmrtsstoday at 8:40 AM

In .NET 11 C# async management moved to the runtime, mostly eliminating heap allocations and also bringing clean stack traces. You really only need to think about ConfigureAwait(false) when building shared libraries or dealing with UI frameworks (even there you mostly don't need it).

show 1 reply
pjmlptoday at 10:08 AM

Unless you are writing GUI code, ConfigureAwait() shouldn't be on your source code.

palatayesterday at 10:39 PM

How does it compare to Kotlin async? I find Kotlin generally hits a good balance across the board.