Let's enhance our technical writing by reading PEPs

By Sai Rahul Poruri

Elevator Pitch

Technical writing is a defining feature of a seasoned software developer. At a time when working amongst geographically distributed teams is the norm, software developers must learn and practice the art of Technical Writing to be effective at their jobs. And look no further than PEPs for help!

Description

Overview

Using five different PEPs, we will understand how seasoned software developers can effectively communicate their proposed technical changes with a global audience. The PEPs influence the future of the Python language and they cover technical changes that range from internal implementation details of the Python programming language to user-facing changes that directly influence how developers write code using Python. While most of us aren’t working on projects as big as the Python language, all of us can learn from the PEPs to improve our ability to explain changes to our colleagues, communicate the proposed changes to other teams that depend on us, and record the context/needs of the time that motivated the change to ensure that future teams have the necessary context.

Relevant PEPs

Highlights

  • List comprehensions, introduced with PEP 202, are ubiquitous today but have you ever wondered why this syntactical sugar was introduced in the first place?
  • Python now has a rich Typing ecosystem but did you consider why Guido van Rossum (creator of Python) was interested in bringing Type Hints to a dynamically typed programming language (Python)? How was this significant technical change broken up and introduced into the Python programming language? How did the authors of the PEP convince the community to accept the PEP and implement the recommended changes?
  • As an interpreted language, one of the first things that happens when you run Python code is the parsing stage by the interpreter. But have you wondered how the CPython interpreter parses the Python grammar? Did you notice when the parser changed in CPython 3.10? Why was the parser changed?
  • Structural pattern matching (match statement) is a new and shiny syntax in the Python programming but did you wonder why the Python language needs a match statement? Are you not sure about the value that it provides?
  • The CPython community has been talking about the GIL-ectomy since CPython 1.x and the time has finally come. But are you not sure what all changes are being made to the language to remove the GIL? You might have heard that removing the GIL slows down Python code (using the CPython interpreter) but have you heard that CPython has been getting faster with every release, which motivated this new effort to remove the GIL in the first place?

Talk outline

I will briefly discuss PEP 202 (List Comprehensions) and PEP 484 (Type Hints) and spend a majority of my time diving into the remaining three PEPs. This is because the newer PEPs were introduced during/after 2020 and given the userbase of the Python programming language/CPython interpreter, they provide incredible amounts of detail to ensure that the community is satisfied with the rationale, the implementation, etc.

Notes

I have been using the Python programming language for 10-ish years now, 8+ of them as a professional software developer.