Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

I Live-Coded an Async Coroutine Framework in 32.5 Minutes

DZone's Guide to

I Live-Coded an Async Coroutine Framework in 32.5 Minutes

Gain a deep understanding of a miraculous new programming idiom in the Python 3 standard library called "asyncio"

· Web Dev Zone ·
Free Resource

Learn how error monitoring with Sentry closes the gap between the product team and your customers. With Sentry, you can focus on what you do best: building and scaling software that makes your users’ lives better.

Python 3's "asyncio" module is an efficient async framework similar to Node. But unlike Node, it emphasizes a modern idiom called "coroutines", rather than callbacks. Coroutines promise the best of two worlds: the efficiency of callbacks, but with a natural and robust coding style similar to synchronous programming.

In barely 30 minutes I live-coded a Python 3 async framework at PyGotham 2015. First, I showed how an async framework uses non-blocking sockets, callbacks, and an event loop. This version of the framework is very efficient, but callbacks make a mess of the code. Therefore, I implemented coroutines using Python generators and two classes called Future and Task, and updated my little framework to use coroutines instead of callbacks.

The live-coding demo isn't just a magic trick: watch to see how simply a coroutine-based async framework can be implemented, and gain a deep understanding of this miraculous new programming idiom in the Python 3 standard library.

My mind is blown by the speed and quality of Next Day Video's work at Python conferences. My undying gratitude for this recording of my PyGotham talk.

What’s the best way to boost the efficiency of your product team and ship with confidence? Check out this ebook to learn how Sentry's real-time error monitoring helps developers stay in their workflow to fix bugs before the user even knows there’s a problem.

Topics:
python ,python 3.0

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}