That's because many languages start without async/await. So, sync overloads stay for eternity for backwards compatibility.
If I could design a language from scratch, I'd argue for async/await OOTB. For example, the Microsoft Midori team did "async everything" in their C# derivative.[0]
If I could design a language from scratch, I'd argue for async/await OOTB. For example, the Microsoft Midori team did "async everything" in their C# derivative.[0]
[0]: https://joeduffyblog.com/2015/11/19/asynchronous-everything/