Summary Brett Cannon has been a long-time contributor to the Python language and community in many ways. In this episode he shares some of his work and thoughts on modernizing the ecosystem around the language. This includes standards for packaging, discovering the true core of the language, and how to make it possible to target mobile and web platforms. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to pythonpodcast.com/linode and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! Are you bored with writing scripts to move data into SaaS tools like Salesforce, Marketo, or Facebook Ads? Hightouch is the easiest way to sync data into the platforms that your business teams rely on. The data you’re looking for is already in your data warehouse and BI tools. Connect your warehouse to Hightouch, paste a SQL query, and use their visual mapper to specify how data should appear in your SaaS systems. No more scripts, just SQL. Supercharge your business teams with customer data using Hightouch for Reverse ETL today. Get started for free at pythonpodcast.com/hightouch. Your host as usual is Tobias Macey and today I’m interviewing Brett Cannon about improvements in the packaging ecosystem, the promise of WebAssembly, and his recent explorations of CPython’s interpreter Interview Introductions How did you get introduced to Python? As a core contributor to CPython, a member of the steering Council, and the team lead for VSCode’s Python extension, what are your current areas of focus for the language? One of the PEPs that you were involved with recently introduced the pyproject.toml file for simplifying the work of building Python packages. Can you share some of the background behind that work and the goals that you had for it? Since its introduction a lot of people have co-opted that file for other project configuration. What was your reaction to that, and if you had foreseen that usage what might you have changed or added in the PEP to account for it? What are the long term impacts on the packaging ecosystem that you anticipate with the standardization efforts that are happening? Another area where there is a lot of attention right now is being able to target additional deployment environments such as the browser, with web assembly, and mobile devices, with projects like BriefCase and Kivy. You had a recent post where you posed some questions about the true nature of Python and the possibility of removing pieces of it to simplify building for these other runtimes. What is your personal sense of the minimal set of features that we need for something to still be Python? How have projects such as MicroPython and PyOdide influenced your thinking on the matter? You have also recently been writing a series of articles about the implementation details of different syntactic elements of Python. What was your inspiration for that? What are some of the interesting or surprising details that you encountered while unwrapping the way that the interpreter handles those syntactic elements? How have those explorations helped you in your efforts to identify the core of Python? Recent releases of Python have brought in some substantial changes to the interpreter and new language features (e.g. PEG parser, pattern matching). What are some of the other large initiatives that you are keeping track of? What are your personal goals for the near to medium term future of Python? What are the most interesting, unexpected, or challenging lessons that you have learned while working on the Python language and related tooling? If you were to redesign Python today, what are some of the things that you would do differently? Keep In Touch brettcannon on GitHub @brettsky on Twitter Blog Picks Tobias Cold Brew Iced Tea Loki on Disney+ Brett Rich Textual The physics facts included in all of the Python 3.10 release announcements, e.g. you will never see a green star Links Brett’s Blog Python VSCode Extension Python Steering Council Python Package Authority UC Berkeley Vancouver, BC Squamish, Musquiam, Tsleil-waututh First Nations Pascal Python C O’Reilly PyCon US 2021 Steering Council Keynote Python Developer-In-Residence PSF Visionary Sponsorship Setuptools Pip Python Wheels PyPI PEP 518 PEP 517 PEP 621 pyproject.toml Flit Enscons PyPA Build PyOxidizer Pex Shiv cx_Freeze cibuildwheel Thomas Kluyver Poetry Vaults of Parnassus MicroPython Podcast Episode CircuitPython Podcast Episode Desugaring Python Blog Series JupyterHub PyOdide JupyterLite ANSI C99 PyPy Jython IPython ncurses Kivy Briefcase Toga PEP 401 The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA