The Real Python Podcast

Benchmarking Python 3.14 & Enabling Asyncio to Scale

How does Python 3.14 perform under a few hand-crafted benchmarks? Does the performance of asyncio scale on the free-threaded build? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.

At the top of the show, we have a mountain of release news and Python Enhancement Proposals to cover. Then, we dig into a couple of articles covering the performance of Python 3.14. The first is a benchmarking comparison of the last several Python versions and their variations, including JIT and free-threaded mode. The second explores the changes in 3.14 that enable asyncio to scale on CPython’s free-threaded build.

We also share several other articles and projects from the Python community, including an introduction to NiceGUI, a free-threaded Python library compatibility checker, an exploration of what is “good taste” in software engineering, HTML templating with t‑strings, and a tool for testing Sphinx docs instantly in the browser.

Course Spotlight: Documenting Python Projects With Sphinx and Read the Docs

In this video series, you’ll create project documentation from scratch using Sphinx, the de facto standard for Python. You’ll also hook your code repository up to Read the Docs to automatically build and publish your code documentation.

Topics:

  • 00:00:00 – Introduction
  • 00:02:28 – Python 3.12.12, 3.11.14, 3.10.19 and 3.9.24 now available
  • 00:03:08 – Python 3.13.9 is now available
  • 00:03:26 – Python 3.15.0 alpha 1
  • 00:04:02 – PEP 804: An External Dependency Registry and Name Mapping Mechanism
  • 00:04:56 – PEP 806: Mixed Sync/Async Context Managers With Precise Async Marking
  • 00:06:34 – PEP 807: Index Support for Trusted Publishing
  • 00:07:21 – PEP 809: Stable ABI for the Future
  • 00:08:10 – PEP 810: Explicit Lazy Imports
  • 00:10:31 – Python lazy imports you can use today
  • 00:10:48 – Lazy Imports Using wrapt
  • 00:11:18 – Python 3.14 Is Here. How Fast Is It?
  • 00:17:45 – Free-Threaded Python Library Compatibility Checker
  • 00:19:54 – Scaling Asyncio on Free-Threaded Python
  • 00:24:06 – Real Python 3.14 Resources
  • 00:25:18 – Video Course Spotlight
  • 00:26:31 – Intro to NiceGUI: Build Interactive Python Web Apps
  • 00:30:22 – What Is “Good Taste” in Software Engineering?
  • 00:40:52 – Try Sphinx Docs Instantly in Your Browser
  • 00:43:11 – Introducing tdom: HTML Templating With t‑strings
  • 00:46:21 – Thanks and goodbye

News:

  • Python Insider: Python 3.12.12, 3.11.14, 3.10.19 and 3.9.24 are now available!
  • Python Insider: Python 3.13.9 is now available!
  • Python Insider: Python 3.15.0 alpha 1
  • PEP 804: An External Dependency Registry and Name Mapping Mechanism (Added)
  • PEP 806: Mixed Sync/Async Context Managers With Precise Async Marking (Added)
  • PEP 807: Index Support for Trusted Publishing (Added)
  • PEP 809: Stable ABI for the Future (Added)
  • PEP 810: Explicit Lazy Imports (Added)
  • Python lazy imports you can use today - PythonTest
  • Lazy Imports Using wrapt – PEP 810 proposes adding explicit lazy imports to Python, but you can already achieve this with third-party libraries. This post shows you how using wrapt.

Show Links:

  • Python 3.14 Is Here. How Fast Is It? – A comprehensive deep-dive comparison of performance figures between Python versions and variations, including the JIT and free-threaded mode.
  • Free-Threaded Python Library Compatibility Checker – A heat map and table summarizing Python free-threaded compatibility in a variety of common Python packages.
  • Python 3.14: 3 asyncio Changes – asyncio changes are often overlooked. In the latest 3.14 release, there are three new asyncio features and changes.
  • Scaling Asyncio on Free-Threaded Python – A recap of the work done in Python 3.14 to enable asyncio to scale on the free-threaded build of CPython.
  • Intro to NiceGUI: Build Interactive Python Web Apps – Use NiceGUI to turn Python scripts into interactive web apps without touching HTML, CSS, or JavaScript.

Discussion:

  • What Is “Good Taste” in Software Engineering? – This opinion piece discusses the difference between skill and taste when writing software. What counts as “clean code” for one person may not be the same for another.

Projects:

  • Try Sphinx Docs Instantly in Your Browser
  • Introducing tdom: HTML Templating With t‑strings – Python 3.14 introduces t-strings, and this article showcases tdom, a new HTML DOM toolkit that takes advantage of them to produce safer output.

Additional Links:

  • Benchmarking MicroPython - miguelgrinberg.com
  • Is Python Really That Slow? - miguelgrinberg.com
  • Bubble sort - Wikipedia
  • Fibonacci sequence - Wikipedia
  • Python 3.14: Cool New Features for You to Try – Real Python
  • What’s New in Python 3.14 – Real Python
  • Python 3.14 Preview: REPL Autocompletion and Highlighting – Real Python
  • Python 3.13 Preview: A Modern REPL – Real Python
  • Python 3.14 Preview: Lazy Annotations – Real Python
  • Python 3.14 Preview: Better Syntax Error Messages – Real Python
  • Python 3.14 Preview: Template Strings (T-Strings) – Real Python
  • Python 3.13: Free Threading and a JIT Compiler – Real Python
  • Quasar Framework

Level up your Python skills with our expert-led courses:

  • Building a Python GUI Application With Tkinter
  • Documenting Python Projects With Sphinx and Read the Docs
  • What's New in Python 3.14

Support the podcast & join our community of Pythonistas