Python Getting Faster and Leaner & Ideas for Django Projects
Oct 25, 2024
auto_awesome
Christopher Trudeau, a regular on the show and contributor at PyCoder's Weekly, discusses exciting developments in Python, including the adaptive interpreter and JIT compiler from version 3.13. He shares insights on performance improvements and explores a range of Django projects for developers at all skill levels. The conversation also dives into recent Python Enhancement Proposals and practical community projects like building a contact book app and leveraging DuckDB in the browser. It’s a treasure trove for Python enthusiasts!
Recent Python updates focus on performance enhancements like a specialized adaptive interpreter and a just-in-time (JIT) compiler for faster execution.
The podcast explores a range of Django projects that help developers practice skills and understand the framework's practical applications.
Deep dives
Performance Improvements in Python
Recent updates in Python emphasize significant performance enhancements including the introduction of a specialized adaptive interpreter. This interpreter optimizes frequently used code patterns, particularly within loops, by altering the bytecode execution process to be more efficient. Additionally, improvements in memory management have reduced the base object size, resulting in better cache utilization and potentially faster execution. These changes contribute substantially to overall performance, aligning with the ongoing efforts to make Python faster for different applications.
Django Projects for Skill Development
A collection of Django project ideas is highlighted, ranging from beginner tutorials to more advanced applications. These projects allow developers to practice their skills and explore the capabilities of Django through various practical implementations, such as building a survey tool or a recipe organizer. The discussion notes prominent websites that utilize Django, emphasizing its robustness as a framework. By providing resources and project suggestions, developers can channel their creativity and gain hands-on experience with web development using Django.
New Features in Python 3.13
The launch of Python 3.13 introduced various updates and features, including a just-in-time (JIT) compiler, marking a significant shift toward improving execution speeds. The previous release faced delays due to performance regressions related to garbage collection, showcasing the challenges in optimizing such a multifaceted system. New Python Enhancement Proposals (PEPs) also play a vital role in guiding packaging formats and dependency management, which contribute to better software practices within the Python community. These ongoing discussions and developments reflect a commitment to maintaining Python's competitive edge in the programming landscape.
Innovative Python Projects and Tools
Innovative projects such as DuckDB integration in the browser with Pyodide demonstrate the versatility of Python in modern environments. Additionally, tools like Surgeon, a command-line interface for language-aware searching, illustrate advanced capabilities for developers looking to streamline their coding workflows. Resources are also available for building practical applications, such as a contact book app using Python's Textual library and SQLite. These tools and projects not only enhance coding efficiency but also empower developers to create robust, interactive applications with Python.
What changes are happening under the hood in the latest versions of Python? How are these updates laying the groundwork for a faster Python in the coming years? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.
Christopher shares an article about Python’s recent performance improvements. The piece covers the specialized adaptive interpreter and explains what those terms mean. It also includes details about the experimental feature of the Just-In-Time (JIT) compiler added in 3.13.
We dig into a collection of Django projects you can use to practice and develop your skills. The projects ramp up from detailed beginner tutorials to more advanced projects with guidelines on how to get started. We also discuss a collection of popular websites that use Django.
We share several other articles and projects from the Python community, including a batch of recent Python Enhancement Protocols (PEPs), a couple of Python releases, using DuckDB in the browser with Pyodide, building a contact book app with Textual, generating a tiny status page with a Python script, and a grep-like tool that understands code.
In this video course, you’ll build a Python site connectivity checker for the command line. While building this app, you’ll integrate knowledge related to making HTTP requests with standard-library tools, creating command-line interfaces, and managing concurrency with asyncio and aiohttp.
Topics:
00:00:00 – Introduction
00:03:11 – PEP 777: How to Re-Invent the Wheel
00:04:22 – PEP 758: Allow except and except* Expressions Without Parentheses
00:04:51 – PEP 760: No More Bare Excepts (Withdrawn)
00:05:42 – PEP 735: Dependency Groups in pyproject.toml
00:06:29 – PEP 761: Deprecating PGP Signatures for CPython Artifacts
00:06:59 – Python 3.12.7 Released
00:07:12 – Incremental GC and Pushing Back the 3.13.0 Release
00:09:10 – DuckDB in the Browser With Pyodide
00:15:35 – Sponsor: AssemblyAI
00:16:18 – Build a Contact Book App With Python, Textual, and SQLite
00:21:55 – Django Project Ideas
00:28:42 – Video Course Spotlight
00:30:00 – In the Making of Python Fitter and Faster
00:35:13 – tinystatus: Tiny Status Page Generated by a Python Script
00:38:06 – srgn: Grep-Like Tool That Understands Code
00:42:01 – Thanks and goodbye
News:
PEP 777: How to Re-Invent the Wheel – “The current wheel 1.0 specification was written over a decade ago, and has been extremely robust to changes in the Python packaging ecosystem… this PEP prescribes compatibility requirements on future wheel revisions.”
PEP 758: Allow except and except* Expressions Without Parentheses – “This PEP proposes to allow unparenthesized except and except* blocks in Python’s exception handling syntax. Currently, when catching multiple exceptions, parentheses are required around the exception types.”
PEP 761: Deprecating PGP Signatures for CPython Artifacts – Since Python 3.11.0, CPython has provided two verifiable digital signatures for all CPython artifacts: PGP and sigstore. This PEP proposes moving to sigstore as the only way of signing artifacts.
DuckDB in the Browser With Pyodide – Learn how to run DuckDB in an in-browser Python environment to enable simple querying on remote files, interactive documentation, and easy to use training materials.
Build a Contact Book App With Python, Textual, and SQLite – In this tutorial, you’ll be guided step by step through the process of building a basic contact book application. You’ll use Python and Textual to build the application’s text-based user interface (TUI), and then use SQLite to manage the database.
Django Project Ideas – Looking to experiment or build your portfolio? Discover creative Django project ideas for all skill levels, from beginner apps to advanced full-stack projects.
In the Making of Python Fitter and Faster – This post details how Python’s recent performance improvements work under the hood. It covers changes to the interpreter, better memory management, and the newly experimental JIT compiler.