[Async-sig] Some thoughts on asynchronous API design in a post-async/await world

Brett Cannon brett at python.org
Sun Nov 6 23:20:20 EST 2016


I'll also reiterate Cory's compliments that the post was great!

For me there are two questions the post raises. One is how do we keep
people from tying themselves to any one event loop? I view sans-io as the
 start of this, but it does require getting people to know about it,
implement protocols that way, and then continuing to abstract themselves in
such a way so as to not tie themselves down. But then we start to go up a
level to things that work at the HTTP level and then it starts to get
complicated and I don't know if we have a solution yet for e.g. an async
GitHub SDK library that is event loop-agnostic when it comes to HTTP
requests/responses.

Two, how long do we put off "the future" for some async/await-native event
loop to emerge and hit production quality? I totally understand David
wanting to keep curio experimental, but at some point something will either
need to reach stable for people to seriously use or "the future" will
simply stay in the future and people will just tie themselves to the
asyncio abstractions, making it that much harder for people to try
something else. As I think all of us realize, async/await is giving us a
rare opportunity to set the future tone for networking code in Python, but
at some point a tipping point will be reached and whatever common practice
is in place at that point might calcify, so figuring out how we want things
to be in the general landscape would be good.

I would also like to thank everyone involved with defining async/await. I
think the fact that async/await is an API and not something tightly bound
to any specific event loop like in pretty much every other async-supporting
language has been very beneficial to us and something to celebrate. The
sheer fact that people who don't like asyncio, Twisted, Tornado, or curio
have other options is fantastic.

On Sun, 6 Nov 2016 at 02:55 Cory Benfield <cory at lukasa.co.uk> wrote:

>
> > On 6 Nov 2016, at 00:09, Nathaniel Smith <njs at pobox.com> wrote:
> >
> > I just posted a long blog/essay that's probably of interest to folks
> here:
> >
> >
> https://vorpus.org/blog/some-thoughts-on-asynchronous-api-design-in-a-post-asyncawait-world/
> >
> > The short version: I think curio something important to teach us; I
> > tried to figure out what that is and how we can learn from it.
>
> This is a great post Nathaniel, and I think there’s a lot of value to
> extract from this for everyone.
>
> In the short term, I’m going to address Twisted’s issue because it seems
> like the most glaring “this is a stupid bug” problem, and a quick glance at
> the relevant interfaces suggests it’s easily resolved. It also undermines
> my own personal mission to make Twisted a great HTTP/2 server. ;)
>
> Cory
> _______________________________________________
> Async-sig mailing list
> Async-sig at python.org
> https://mail.python.org/mailman/listinfo/async-sig
> Code of Conduct: https://www.python.org/psf/codeofconduct/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/async-sig/attachments/20161107/3df83dc0/attachment.html>


More information about the Async-sig mailing list