CSC 395 (Fall 2021)

Demonstration Exercise 9

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:

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:

You can choose some subset of these perspectives to discuss or others that you believe contributed to this problem.