Learn Python with Talk Python's 270 hours of courses

Python year in review (2020 edition)

Episode #297, published Mon, Dec 28, 2020, recorded Mon, Nov 30, 2020

2020 will be one for the history books, won't it? I've put together a great group to look back on 2020 - from the Python perspective.

Join me along with Cecil Phillip, Ines Montani, Jay Miller, Paul Everitt, Reuven Lerner, Matt Harrison, and Brian Okken for a light-hearted and fun look back on the major Python events of 2020.

Episode Deep Dive

Guests introduction and background

Jay Miller is a developer advocate at Elastic and the host of a productivity-focused podcast. He has a passion for exploring creative solutions in Python and encouraging new Pythonistas to share their ideas.

Reuven Lerner is a corporate Python trainer, author of Python Workout, and has taught Python at companies around the world, from complete beginners to advanced teams.

Ines Montani is a co-founder of Explosion, the company behind the spaCy NLP library. She focuses on building tools for developers in AI and machine learning, including spaCy and projects that build on top of it.

Paul Everett is a developer advocate at JetBrains working on Python and Web technologies. Known for his Python “1994” talk, he has been a long-time Python community member with deep historical context.

Brian Okken is the host of the Test and Code podcast and co-host of Python Bytes, as well as the author of Python Testing with pytest. He’s known for his expertise in testing practices and tools in Python.

Matt Harrison is a Python trainer, consultant in data science, and the author of multiple Python books, such as Effective PyCharm and the Tiny Python series. He specializes in translating complex data problems into approachable solutions.

Cecil Phillip is a cloud developer advocate at Microsoft with a background in .NET. He creates beginner-friendly content on Python (and other tech topics), including a weekly live stream, emphasizing a welcoming, curious approach to new languages.

What to Know If You're New to Python

If you’re just joining the Python space, remember that Python 3 is the current and modern version of the language. Much of the conversation in this episode celebrates Python’s growth and its easy learning curve, so be ready to hear about exciting features like f-strings, type hints, and fast-evolving libraries. You’ll hear references to the “old days” of Python 2, but rest assured, Python 3 is where your focus should be. Make a note of libraries like FastAPI, Pydantic, and spaCy, as they reflect Python’s rich and forward-moving ecosystem.

Key points and takeaways

  1. Guido van Rossum Joins Microsoft and Microsoft’s Transformation A major highlight is the announcement that Guido van Rossum (the creator of Python) joined Microsoft. This move exemplifies Microsoft’s evolution from being once resistant to open source to now proactively supporting Python developers and projects. The panel notes how Microsoft’s recent open source contributions, including GitHub acquisitions and cloud services, are fostering a more vibrant Python ecosystem.
  2. Python 2’s End-of-Life Officially in 2020, Python 2 reached end-of-life, marking a significant milestone for the community. The guests discuss how many projects and companies finally migrated to Python 3, freeing libraries like Django, Flask, and others to fully embrace modern Python features. Despite minor headaches for organizations with large Python 2 codebases, the group agrees it’s a huge net benefit for Python’s future.
  3. New pip Dependency Resolver and Packaging Improvements Brian Okken highlights the release of pip 20.3, which introduced a proper dependency resolver as the default. This was a long-awaited feature that helps developers avoid conflicting versions within requirements. Alongside it, the group notes the increasing adoption of pyproject.toml for configuration and how it centralizes project metadata, improving the Python packaging story.
  4. Rise of Type Hints and the Typed Ecosystem Ines Montani underscores how type hints have changed the way many developers write Python code. Libraries like Pydantic leverage them for data validation, and frameworks such as FastAPI build on these concepts for more robust APIs. Type hints in editors like VS Code enable better auto-completion and static type checkers (mypy) can detect errors before runtime.
  5. Interactive Coding with Jupyter and Collaborative Notebooks Jupyter notebooks were celebrated for simplifying Python for data science, teaching, and prototyping. Panelists note an increase in collaborative notebook solutions like Deepnote or Google Colab, especially for data-focused roles. While some prefer a classic IDE for large applications, Jupyter remains popular among beginners and seasoned data scientists alike.
  6. The Impact of COVID-19 on Python and Conferences Conferences had to shift online, which expanded speaker opportunities to a global audience but lost the face-to-face networking. Reuven Lerner mentions how training engagements continue growing because companies are aggressively hiring Python developers. However, organizations like the Python Software Foundation have fewer revenue streams from in-person events and must adapt for funding.
  7. Healthy Project Governance and Python’s Ongoing Success Paul Everett discusses Python’s governance transition after Guido stepped down as BDFL (Benevolent Dictator For Life). Despite concerns, the project continued smoothly due to strong leadership and established community practices. This stable governance model assures developers and organizations that Python’s future isn’t tied to any single person.
  8. Expanded Hardware Options: GPUs and Apple M1 Matt Harrison brings up the surge in GPU-accelerated computing for Python, especially in machine learning and data science. Meanwhile, Apple’s new M1 chip introduced new performance possibilities but will require the ecosystem to recompile packages for the ARM-based architecture. Both trends show how Python remains adaptable across diverse computing platforms.
  9. Continuing Popularity in Data Science and Beyond Machine learning, AI, and data analytics are still major drivers behind Python’s explosive growth. Tools like spaCy for NLP and frameworks like PyTorch or TensorFlow reinforce Python’s position in data science. The group points out that many Python users in these fields are not “traditional” programmers but scientists, analysts, and other domain experts who benefit from Python’s simplicity.
  10. Simplifying AI and NLP with Tools like spaCy and Pydantic Real-world machine learning often requires clarifying shapes of multi-dimensional data and validating input. Ines mentions how spaCy projects and custom mypy plugins can help track shapes and types through complex layers. Tools like Pydantic and Typer illustrate how Python’s type hints streamline development of even advanced AI-focused projects.
  1. GitHub Actions and Developer Workflow Brian Okken briefly notes how many open-source projects moved CI/CD pipelines to GitHub Actions in 2020. This switch underscores how integrated GitHub has become in the Python ecosystem. It simplifies collaboration, testing, and deployment, letting developers quickly adapt to changes like new pip releases or Python version updates.
  1. Remote Work and Broader Developer Pools As companies realize distributed teams can be productive, there’s increasing acceptance of hiring across geographies. This expanded talent search benefits Python developers everywhere and may accelerate Python usage, since many new roles involve data crunching, automation, or backend APIs.

Interesting quotes and stories

Jay Miller on online conferences: “I’ve seen conference talks that were literally small-budget films with multiple cast members. Being online gives room for so much creativity.”

Cecil Phillip on Microsoft’s evolution: “Hopefully the rest of the open-source world will start to realize that we are serious about being good open-source citizens and supporting the culture and the community.”

Ines Montani on type checking in data science: “We can prevent a bug before we even make it… you can see it underlined in your editor, done by mypy as you type the code.”

Key definitions and terms

  • Dependency Resolver: A mechanism in package management that ensures all required libraries (and their versions) align so that they do not conflict with each other.
  • Type Hints: Syntax added to Python functions and variables to indicate the expected data types, allowing tools like mypy to catch errors before runtime.
  • Python 2 End-of-Life: In 2020, Python 2 support officially ceased, encouraging all users to migrate to Python 3 for continued updates, security patches, and new features.
  • GPU Acceleration: Using graphics processing units for operations beyond rendering visuals; widely adopted in machine learning for parallelizable tasks.
  • CI/CD (Continuous Integration / Continuous Deployment): A development practice where code changes are automatically tested and prepared for deployment to ensure rapid, high-quality releases.

Learning resources

If you're looking to strengthen your Python skills, here are some courses from Talk Python Training that complement topics from the episode:

Overall takeaway

Python’s 2020 story highlights a language that continues to flourish, evolve, and unify a diverse developer base—especially as Microsoft, data science, and open-source communities invest heavily in it. Whether it’s the final farewell to Python 2, the arrival of new hardware platforms, or the embrace of type hints and advanced packaging, Python’s adaptability and vibrant community show no signs of slowing down.

Links from the show

Video version of this episode: youtube.com

Guests
Cecil Phillip: @cecilphillip
Ines Montani: @_inesmontani
Jay Miller: @kjaymiller
Paul Everitt: @paulweveritt
Reuven Lerner: @reuvenmlerner
Matt Harrison: @__mharrison__
Brian Okken: @brianokken
Episode transcripts: talkpython.fm

--- Stay in touch with us ---
Subscribe to Talk Python on YouTube: youtube.com
Talk Python on Bluesky: @talkpython.fm at bsky.app
Talk Python on Mastodon: talkpython
Michael on Bluesky: @mkennedy.codes at bsky.app
Michael on Mastodon: mkennedy

Talk Python's Mastodon Michael Kennedy's Mastodon