The Python Podcast.__init__

Making The Case For A (Semi) Formal Specification Of CPython


Listen Later

Summary

The CPython implementation has grown and evolved significantly over the past ~25 years. In that time there have been many other projects to create compatible runtimes for your Python code. One of the challenges for these other projects is the lack of a fully documented specification of how and why everything works the way that it does. In the most recent Python language summit Mark Shannon proposed implementing a formal specification for CPython, and in this episode he shares his reasoning for why that would be helpful and what is involved in making it a reality.

Announcements
  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • 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!
  • Do you want to get better at Python? Now is an excellent time to take an online course. Whether you’re just learning Python or you’re looking for deep dives on topics like APIs, memory mangement, async and await, and more, our friends at Talk Python Training have a top-notch course for you. If you’re just getting started, be sure to check out the Python for Absolute Beginners course. It’s like the first year of computer science that you never took compressed into 10 fun hours of Python coding and problem solving. Go to pythonpodcast.com/talkpython today and get 10% off the course that will help you find your next level. That’s pythonpodcast.com/talkpython, and don’t forget to thank them for supporting the show.
  • Your host as usual is Tobias Macey and today I’m interviewing Mark Shannon about his efforts to create a formal specification for the CPython interpreter
  • Interview
    • Introductions
    • How did you get introduced to Python?
    • Can you start by describing the current state of how the Python language and the CPython runtime are defined?
    • What is your motivation in advocating for a specification?
      • After ~25 years of the language, why is now the time to pursue this effort?
      • How does the history of the language and the scope of the ecosystem and community impact the effort required to make this a reality?
      • What is involved in creating the specification and where would it be located once complete?
        • What are some examples of languages that are formally specified?
        • What are the possible benefits of creating a specification for the CPython virtual machine?
          • What is the distinction between a specification for the VM as opposed to a specification for the language?
          • What are some potential downsides to having a (semi-)formal specification become part of the definition of the interpreter?
          • Can you describe the process of doing the work to create the specification?
          • How are you approaching the actual definition of the specification (e.g. prose vs programmatic)?
            • What are the tradeoffs of prose vs. an executable specification (e.g. TLA+, Alloy)?
            • How does this work tie into your goals of improving the speed of the CPython interpreter?
            • What are some of the most interesting, unexpected, or challenging aspects of your efforts to bring this specification to CPython?
            • How can the community contribute to this effort?
            • Keep In Touch
              • markshannon on GitHub
              • Website
              • Picks
                • Tobias
                  • American Gods book and TV series
                  • Mark
                    • Roadside Picnic
                    • In Death (VR game)
                    • On Steam
                      Closing Announcements
                      • Thank you for listening! Don’t forget to check out our other show, the Data Engineering Podcast for the latest on modern data management.
                      • Visit the site to subscribe to the show, sign up for the mailing list, and read the show notes.
                      • If you’ve learned something or tried out a project from the show then tell us about it! Email [email protected]) with your story.
                      • To help other people find the show please leave a review on iTunes and tell your friends and co-workers
                      • Join the community in the new Zulip chat workspace at pythonpodcast.com/chat
                      • Links
                        • CPython
                        • PyPy
                        • PEP 380 yield from
                        • Language Summit
                        • RustPython
                        • Jython
                        • C++
                        • ML programming language
                        • Java
                        • Python Formal Semantics git repository
                        • CPython PEG Parser Episode with Pablo Galindo and Lysandros Nikolaou
                        • IETF RFCs
                        • The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

                          ...more
                          View all episodesView all episodes
                          Download on the App Store

                          The Python Podcast.__init__By Tobias Macey

                          • 4.4
                          • 4.4
                          • 4.4
                          • 4.4
                          • 4.4

                          4.4

                          100 ratings


                          More shows like The Python Podcast.__init__

                          View all
                          TED Talks Daily by TED

                          TED Talks Daily

                          11,280 Listeners

                          6 Minute English by BBC Radio

                          6 Minute English

                          1,779 Listeners

                          The Changelog: Software Development, Open Source by Changelog Media

                          The Changelog: Software Development, Open Source

                          285 Listeners

                          Data Skeptic by Kyle Polich

                          Data Skeptic

                          474 Listeners

                          Talk Python To Me by Michael Kennedy

                          Talk Python To Me

                          585 Listeners

                          Software Engineering Daily by Software Engineering Daily

                          Software Engineering Daily

                          630 Listeners

                          The TWIML AI Podcast (formerly This Week in Machine Learning & Artificial Intelligence) by Sam Charrington

                          The TWIML AI Podcast (formerly This Week in Machine Learning & Artificial Intelligence)

                          429 Listeners

                          Super Data Science: ML & AI Podcast with Jon Krohn by Jon Krohn

                          Super Data Science: ML & AI Podcast with Jon Krohn

                          295 Listeners

                          Python Bytes by Michael Kennedy and Brian Okken

                          Python Bytes

                          212 Listeners

                          Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

                          Syntax - Tasty Web Development Treats

                          984 Listeners

                          DataFramed by DataCamp

                          DataFramed

                          267 Listeners

                          Practical AI by Practical AI LLC

                          Practical AI

                          196 Listeners

                          The Real Python Podcast by Real Python

                          The Real Python Podcast

                          136 Listeners

                          Last Week in AI by Skynet Today

                          Last Week in AI

                          275 Listeners

                          Latent Space: The AI Engineer Podcast by swyx + Alessio

                          Latent Space: The AI Engineer Podcast

                          64 Listeners