3 ms·
> Why do I have to decide if my function is synchronous or not when I write it? I feel that sync and async functions are fundamentally different. In python cor
by kabacha 6y ago
> Why do I have to decide if my function is synchronous or not when I write it?
I feel that sync and async functions are fundamentally different. In python coroutine is really just a function you can pause and while it might seem like it's the same thing as a normal function it's actually very different algorithmic-ally speaking as you can include a lot of low level optimizations which is really what async code is all about — getting rid of that IO waiting.
I love async python but after working with it for better half of a year now it is often a bit tiring as you've pointed out. It feels a bit like a patch to the language rather than a feature even with the newest 3.9 version.
Btw you might like https://trio.readthedocs.io https://trio.readthedocs.io which makes asyncio much more bearable!
- pythonaut_16 6y agoIs that because the Python interpreter has to explicitly handle coroutines differently from normal functions? One difference for Elixir/Erlang (which GP mentioned) is that the BEAM VM can interrupt any function by default. (There's a few exceptions when you deal with native code and other things)