Demonstration Exercise 9: Case Study: Python
As a personal capstone for the course, we will take a critical look at a recent battle of human concerns in programming: Python. Very recently, the final version of Python 2 has been released ending a 12 year span of two Python versions being actively maintained: Python 2 and Python 3. As documented in the History of Python article on Wikipedia, Python 3 was released in 2006 to solve fundamental flaws in the design of the language at the time whose solutions would introduce breaking changes to existing Python code. While Python 3 universally improves on the language, migration from version 2 to 3 has been glacial, so much so that the original sunset date for Python 2 was extended 2015 date to this year.
Our goal is to use the concepts we’ve discussed in the course to explain this reality even though Python 3 is, on paper, an improvement on Python 2. Were the needs of users considered in this migration? Were users given a clear path to migration? What other factors beyond language improvements supported or impeded migration? To answer these questions, you will need to do some digging and explore the Python ecosystem on your own.
To get you started, here are some resources from the StackOverflow blog about the history of Python 2 vs. Python 3:
- Ryan Donovan. The Final Python 2 Release Marks the End of an Era. The Overflow. April 23, 2020.
- Vicki Boykis. Why is the Migration to Python 3 Taking So Long. The Overflow. November 14, 2019.
The second article in particular gives a good overview of the issues that have kept users from migrating, but we want to go deeper than this article in understanding how user needs were met or not met in this migration.
For this final demonstration exercise, answer the following prompt:
What are the key factors that have contributed to the glacial pace of Python 2-to-3 migration?
In an essay of at least 3 pages (12 point font, 1” margins, double-spaced). Your essay should (a) identify the key factors that contributed to the Python 2-to-3 debacle, (b) explain their technical significance, and (c) explain how these factors violate the principles of human-computing interaction we have discussed in this course. Your essay should contain appropriate citations and a bibliography of work that you consulted for your essay.
There are many perspectives you can take on this subject, including:
- Were the changes in Python 3 adequately motivated by user needs?
- What made migration of libraries in the Python ecosystem so slow?
- Why were migration tools and libraries like 2to3 not silver bullets for migration?
- Even when companies decided to migrate to Python 3, why was the process so long and painful?
- How much did culture factors, both corporate as well as in the open source community, affect the migration process?
You can choose some subset of these perspectives to discuss or others that you believe contributed to this problem.