Python async does suck though

Why?

Historically the main way was Py threads that have all the downsides of OS threads (overhead + data races) without the parallelism advantage (due to GIL), with a confusing API on top. There was no cooperative multitasking until asyncio, at which point it was too late. There are competing solutions now, and many users are thoroughly confused.

And I'm guessing the reason they didn't do greenthreading is it'd severely complicate working with C/native libs.