Skip to content
TrackPodcasts
technologySep 8, 202627:46pending

#495 Banned

Python Bytes

About this episode

Topics covered in this episode:
Watch on YouTube

Sponsored by us! Support our work through:

  • Our courses at Talk Python
  • Consulting from Six Feet Up

Connect with the hosts

  • Michael: Mastodon / BlueSky / X / LinkedIn
  • Calvin: Mastodon / BlueSky / X / LinkedIn
  • Show: Mastodon / BlueSky / X

Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesday at 7am PT. Older video versions available there too.

Finally, if you want an artisanal digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.

Michael #1: EuroPython 2026 videos are online

The EuroPython Society has published all 117 recordings from EuroPython 2026 on the official EuroPython Conference YouTube channel. The conference ran July 13-19 in Krakow, Poland and celebrated the conference series' 25th anniversary. The playlist covers keynotes, panels, lightning talks, and full talk recordings across Python core, web, DevOps, data/ML, embedded, and other tracks.

  • If you missed EuroPython 2026 in Krakow, this is the complete free on-demand archive of one of the year's biggest European Python events.
  • 117 videos now live on the EuroPython Conference YouTube channel, last updated Aug 17, 2026.
  • Michael’s personal watch list.

Calvin #2: The State of Django 2026: Boring is so back

  • State of Django 2026 (JetBrains/DSF survey, ~3,500 devs, 40+ countries) - "boring is so back": Django's core stays reliable while everything around it moves fast
  • Core is stable: Postgres 76–79% for 5 years running, templates ~80%, 43% already on Django 6.0
  • AI is routine now (only 10% use none) but workflow's unsettled - Claude Code leads at 35%, and 56% still just use it for chat, not autonomous edits
  • Tooling is consolidating: uv and Ruff both at 43% adoption, each replacing several older single-purpose tools
  • Type hints are winning (57% use them) but the checker is up for grabs - IDE-built-in leads at 40%, Mypy 32%, with ty/Pyrefly emerging
  • Two Django communities coexist happily: 72% server-rendered templates vs. 53% API-only - and htmx adoption jumped from 5% to 34% in five years

Michael #3: htmx 4.0.0 has been released

After 8 months of work, the htmx team shipped 4.0.0, a rewrite that moves internals from XMLHttpRequest to fetch() while keeping the API almost identical to htmx 2. Three changes may need action: attribute inheritance is now explicit via an :inherited suffix, event names follow a htmx:phase:action pattern, and history no longer caches pages in localStorage. Additions include built-in morph swaps, the new hx-partial tag, and many core extensions. htmx 2 stays supported and remains latest on npm until early 2027.

  • htmx is the go-to frontend layer for Python server-rendered apps (Flask, Django, FastAPI), and 4.0 is deliberately low-drama: nearly behavior-compatible, so teams can upgrade on their own schedule and pick up morph swaps and streaming extensions.
  • Explicit inheritance is the biggest migration item: hx-confirm, hx-headers, hx-target and friends no longer cascade to children unless you append :inherited; hx-disinherit and hx-inherit are gone
  • A CLI upgrade checker (npx [email protected] upgrade-check) flags spots needing :inherited, renames like hx-disable to hx-ignore, removed attrs like hx-vars, and old event names in templates and JS
  • Events follow htmx:phase:action (htmx:beforeRequest becomes htmx:before:request); most error events collapse into htmx:error and htmx:xhr:* events are removed with XMLHttpRequest
  • History no longer snapshots pages in localStorage; back navigation re-fetches and swaps into the body, fixing a chronic support headache, with a new hx-history-cache extension for sessionStorage caching
  • New features: out-of-the-box morphing swaps, the [HTML_REMOVED] tag for multi-element updates, streaming over SSE/WebSockets/multipart, and hx-live, their Alpine-inspired DOM scripting solution
  • No forced upgrade: 2.x stays latest on npm until early 2027 (4.0 remains next) and is supported indefinitely; the team even ships official LLM skill files for guidance and upgrading

Calvin #4: 🐍 Functionally Zen

  • Functionally Zen (Kyle Adams, Test Double) - riffs on "simple is better than complex" with 7 extra tenets for Python simplicity
  • Core claims: idiomatic > non-idiomatic, data > functions, pure functions > impure functions > classes
  • Favorite example: a medical-dosage calculator replaced with a plain lookup dict - no logic, no tests needed
  • Big idea: keep a thin "impure shell" around a "pure core" (Gary Bernhardt's functional core / imperative shell) - push side effects (API calls, DB, files) to the edges
  • Side note: constructors that do I/O are "poison pills" - the side effect infects every class that depends on them
  • Payoff: pure functions and no-mock tests are just easier to read and reason about than the alternative

Extras

Calvin:

Michael:

  • Steering council voting is now open

Joke: Makes you look like this?

Get every episode summarized

Each time Python Bytes publishes, we email you a written briefing from the transcript — the topics, who appeared, and any specific claims, with the ad reads skipped.

Email me new episodes

Free for 3 shows. No card needed.

Hosts & guests

No transcript yet

This episode has not been transcribed. Request it and it moves to the front of the queue.

#495 Banned

Python Bytes

0:00
27:46

More episodes

More from Python Bytes

View all episodes →