HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

Build Your Own Async

David Beazley4 HN recommenders · recommended in 3 months, 2020-2023
YouTube
60K views · 7 years ago · tutorial · evergreen

David Beazley's workshop screencast builds asynchronous programming in Python from scratch, starting from callbacks and continuations and replacing threads to show how concurrency works underneath.

HN people recommend it as the best way to understand what async machinery actually does under the covers.

Python, Ruby & scripting languagesSoftware practice, open source & careers#python#asyncio#concurrency#coroutines#livecoding#davidbeazley

4 comments from Hacker News

@mananaysiempre2023 · in “Philosophy of Coroutines”

> I talk about generators as if they were the coroutine system in Python, but in fact, they’re one of two: Python also has a completely different kind of thing that it actually uses the name ‘coroutine’ for, in which function definitions start with async def and suspend with await . The async and await system of coroutines in Python is in fact layered on top of the yield system, via an intermediate construct called yield from —which isn’t even technically required, it’s just that implementing it as a loop passing values through from and to the subcoroutine is exceptionally tedious if done correctly[1] and can’t be abstracted as a function call. As a first approximation, await x in Python is equivalent to yield from x.__await__() . It should have been completely equivalent, arguably, but history got in the way. David Beazley has a talk[2] where he walks you through implementing an async runtime (to put it pompously) and you can see how the whole thing hangs together. It’s really quite simple, and in my experience it’s much better than trying to wrap your head around the asyncio docs, because while the language-level foundations are extremely nice and simple, asyncio the stdlib module just kind of sucks. [1] link [2] ▶ this video

RecommendsView on HN
@neoncontrails2022 · in “Pre-Allocated Lists in Python”

I highly recommend Victor Skvortsov's exhaustive, 12-part series, "Python Behind the Scenes," a deep dive into the implementation details of just about every Python language feature one could possibly take for granted. There isn't a single one I haven't learned something from, but some of my personal favorites include: * Part 2, How the CPython compiler works: link * Part 6, How Python's object system works: link * Part 10, How Python dictionaries work: link * Part 13: The GIL and its effects on Python multithreading: link The whole series can be found here: link For a slightly higher-level (i.e., no macabre, low-level C code), but still incredibly enlightening dive into the "dark side" of Python, in particular various abuses and hexes for manipulating control flow, have a look at David Beazley's smorgasboard of keynote presentations like "Generators: The Final Frontier" ( link ), "Python Concurrency From The Ground Up" ( link ), and "Build Your Own Async" ( ▶ this video ).

RecommendsView on HN
@migueloller2020 · in “Guide to Concurrency in Python with Asyncio”

I've found this [1] screencast on the low-level principles of async in Python an amazing resource to understand async at a deep level. [1] ▶ this video

Strongly recommendsView on HN
@devxpy2020 · in “Linux containers in a few lines of code”

Yes, something like that. Like here's David's "Build Your Own Async" [1], which I prefer over Philip's (still extremely good) "What the heck is the event loop anyway?" [2]. It's one thing to tell how something works, but to successfully show what the hell its actually doing under the covers, just conveys much more information. [1] ▶ this video [2] link

Strongly recommendsView on HN
A Talk Near the Future of Python (a.k.a., Dave live-codes a WebAssembly Interpreter)1:01:45

A Talk Near the Future of Python (a.k.a., Dave live-codes a WebAssembly Interpreter)

David Beazley
26K views • 7 years ago
Raymond Hettinger, Keynote on Concurrency, PyBay 20171:13:53

Raymond Hettinger, Keynote on Concurrency, PyBay 2017

SF Python
161K views • 9 years ago
Understanding the Python GIL46:10

Understanding the Python GIL

David Beazley
127K views • 14 years ago
Nathaniel J. Smith - Trio: Async concurrency for mere mortals - PyCon 201832:17

Nathaniel J. Smith - Trio: Async concurrency for mere mortals - PyCon 2018

PyCon 2018
30K views • 8 years ago
Keynote: Begin...End?57:05

Keynote: Begin...End?

David Beazley
9K views • 5 years ago
Rust's Journey to Async/Await48:46

Rust's Journey to Async/Await

InfoQ
90K views • 7 years ago
Parallelism, Concurrency, and Asynchrony in Perl 6 / Jonathan Worthington58:08

Parallelism, Concurrency, and Asynchrony in Perl 6 / Jonathan Worthington

yapcasia
6K views • 11 years ago
David Beazley - Lambda Calculus from the Ground Up - PyCon 20193:26:34

David Beazley - Lambda Calculus from the Ground Up - PyCon 2019

PyCon 2019
52K views • 7 years ago
RustLatam 2019 - Without Boats: Zero-Cost Async IO32:24

RustLatam 2019 - Without Boats: Zero-Cost Async IO

Rust Programming Language
55K views • 7 years ago
Crust of Rust: async/await2:34:01

Crust of Rust: async/await

Jon Gjengset
246K views • 5 years ago
Modeling Data Concurrency w/ Asynchronous I/O in Zig - RedisConf 202049:20

Modeling Data Concurrency w/ Asynchronous I/O in Zig - RedisConf 2020

Redis
11K views • 6 years ago
Transforming Code into Beautiful, Idiomatic Python48:51

Transforming Code into Beautiful, Idiomatic Python

Next Day Video
1.1M views • 13 years ago
Friday evening lightning talks52:24

Friday evening lightning talks

Next Day Video
6K views • 13 years ago
Cory Benfield - Building Protocol Libraries The Right Way - PyCon 201631:38

Cory Benfield - Building Protocol Libraries The Right Way - PyCon 2016

PyCon 2016
15K views • 10 years ago
What the heck is the event loop anyway? | Philip Roberts | JSConf EU26:53

What the heck is the event loop anyway? | Philip Roberts | JSConf EU

JSConf
3.8M views • 12 years ago
JavaScript: Understanding the Weird Parts - The First 3.5 Hours3:32:50

JavaScript: Understanding the Weird Parts - The First 3.5 Hours

Tony Alicea
4.2M views • 11 years ago
Q&A with Guido van Rossum, Inventor of Python56:55

Q&A with Guido van Rossum, Inventor of Python

Microsoft Reactor
28K views • 5 years ago
Keynote - Preventing, Finding, and Fixing Bugs On a Time Budget | Raymond Hettinger @ PyBay201840:01

Keynote - Preventing, Finding, and Fixing Bugs On a Time Budget | Raymond Hettinger @ PyBay2018

SF Python
27K views • 8 years ago
Raymond Hettinger - Dataclasses:  The code generator to end all code generators - PyCon 201845:08

Raymond Hettinger - Dataclasses: The code generator to end all code generators - PyCon 2018

PyCon 2018
130K views • 8 years ago
Episode 1: A basic expression evaluator1:38:36

Episode 1: A basic expression evaluator

Immo Landwerth (terrajobst)
284K views • 8 years ago