Slide 1

Slide 1 text

How many iPhones does it take to ship a new Python version? 2023-10-27 CHAN Sau Yee @ PyCon APAC

Slide 2

Slide 2 text

About me CHAN Sau Yee Software Engineer at HENNGE K. K. Goals - 2019: Climb Mount Kilimanjaro (5,895m) - 2020-21: Survive COVID - 2022: Finish full marathon (42.195km) - 2023: Speak at PyCon! 2

Slide 3

Slide 3 text

Q: What’s the difference between an iPhone Mini and an iPhone Max? 3

Slide 4

Slide 4 text

A: Size of your ego 4 Q: What’s the difference between an iPhone Mini and an iPhone Max?

Slide 5

Slide 5 text

How about Python? Who understands the difference between …Python 3.5 and 3.6? Or 3.11 and 3.12? 5

Slide 6

Slide 6 text

Primer: Python versioning 3.12.0 6

Slide 7

Slide 7 text

Primer: Python versioning 3.12.0 Micro Major Minor 7

Slide 8

Slide 8 text

Primer: Python versioning 3.12.0 Micro Major Minor New colour New iPhone iPod Touch to iPhone 8

Slide 9

Slide 9 text

Similarity #1: Founders iPhone Python 9 Source: Faces of Open Source Photo by Albert Watson

Slide 10

Slide 10 text

iPhone Steve Jobs Python Guido van Rossum “Benevolent Dictator For Life” (BDFL, until 2018) Similarity #1: Founders 10 Source: Faces of Open Source Photo by Albert Watson

Slide 11

Slide 11 text

iPhone Oct 2020: iPhone 12 Sep 2021: iPhone 13 Sep 2022: iPhone 14 Sep 2023: iPhone 15 Python Similarity #2: Cadence 11

Slide 12

Slide 12 text

iPhone Oct 2020: iPhone 12 Sep 2021: iPhone 13 Sep 2022: iPhone 14 Sep 2023: iPhone 15 Python Oct 2020: Python 3.9 Oct 2021: Python 3.10 Oct 2022: Python 3.11 Oct 2023: Python 3.12 🎉 Similarity #2: Cadence 12

Slide 13

Slide 13 text

iPhone Oct 2020: iPhone 12 Sep 2021: iPhone 13 Sep 2022: iPhone 14 Sep 2023: iPhone 15 Python Oct 2020: Python 3.9 Oct 2021: Python 3.10 Oct 2022: Python 3.11 Oct 2023: Python 3.12 🎉 Similarity #2: Cadence 13 Pro tip: Add 3 to Python minor version to know the iPhone version equivalent e.g. Python 3.7 = iPhone 10

Slide 14

Slide 14 text

Difference #1: Transparency iPhone -> announcement (e.g. WWDC) Python Secrecy rumors rumors rumors rumors 14

Slide 15

Slide 15 text

Python Transparent, community-driven -> Python Enhancement Proposals (PEPs) ● Everything is on Github / discussions are open! ● PEP 572: Proposal to Acceptance: 1.5 years ● PEP 703 (GIL): 4 months for tentative accept iPhone -> announcement (e.g. WWDC) Secrecy rumors rumors rumors rumors Difference #1: Transparency 15

Slide 16

Slide 16 text

Apple Inc. 164,000 employees -> 100,000 people involved Python Difference #2: Size 16 (Source: Apple Inc, 2022)

Slide 17

Slide 17 text

Apple Inc. 164,000 employees -> 100,000 people involved Python Active Python Core Developers (85) -> they can sponsor PEPs/ draft PEPs Steering Council (5) - nominated and voted -> they have the final say on PEPs Library maintainers test new versions -> 100 people Difference #2: Size 17 (Source: Apple Inc, 2022)

Slide 18

Slide 18 text

Difference #3: Lifecycle Apple AppleCare: 1 - 3 years Python https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/ 18

Slide 19

Slide 19 text

Difference #3: Lifecycle Apple AppleCare: 1 - 3 years Python First release to End-of-Life (EOL): 5 years Libraries usually drop support ~6 months after deprecation E.g. AWS SDK https://aws.amazon.com/blogs/developer/python-support-policy-updates-for-aws-sdks-and-tools/ 19

Slide 20

Slide 20 text

Difference #3: Lifecycle 10 years of Python 2.7 Source: https://devguide.python.org/versions/ 20

Slide 21

Slide 21 text

Conclusion Q. How many iPhones does it take to ship a new Python minor version? A. - By time: 1 new Python version = 1 new iPhone - By number of people: = 1/1000 new iPhone - By lifespan: = 2 new iPhones 21

Slide 22

Slide 22 text

Thank you. HENNGE is hiring! 22