upvote
Try golang, where they did the only sane thing: everything is async from the very beginning, no function colouring
reply
I think practical experience with Go reveals that this choice being “the only sane thing” is highly debatable. It comes with huge drawbacks.
reply
Of course it has drawbacks, everything does, but my practical experience has been hugely in favor of what golang is doing, at least, in terms of cognitive load and code simplicity. It is very much worth it in many, many cases
reply
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).
reply
You speak in the past tense, but .NET 11 is not released yet at time of writing. Runtime-async is not the current reality.
reply
True, it's in preview currently, but actually .NET is already very efficient with async today also - https://hez2010.github.io/async-runtimes-benchmarks-2024/ (.NET9 tested here).
reply
Unless you are writing GUI code, ConfigureAwait() shouldn't be on your source code.
reply
How does it compare to Kotlin async? I find Kotlin generally hits a good balance across the board.
reply