How are companies coping with the end of Python Software Foundation support for Python 2? Not badly, all considered. The biggest blockers to a migration to Python 3 are issues that shouldn’t affect most enterprises. Unfortunately, the few companies that are stuck with Python 2 are very stuck.
A survey conducted by ActiveState, creator of the ActivePython distribution of Python and provider of post-EOL Python 2 support, found that only a minority of the companies surveyed were heavily reliant on Python 2, and roughly half of them had migration plans in place. But the unready companies were quite unready.
According to responses gathered from 1,250 participants, 37% had “half or more” of their Python applications running on Python 2. Most of the companies polled — 60% — planned to migrate to Python 3.
What gets in the way of migrating? Learning Python 3 (20%), supporting Python 2 apps (25%), converting Python 2 to Python 3 (37%), and testing (40%) — but the biggest challenge cited was finding Python 3 replacements for existing packages (54%).
When asked which packages posed the greatest obstacles, ActiveState indicated three that received specific mention from survey respondents: the Mingwpy project, which was discontinued in 2017; Autodesk Maya, a high-end 3D rendering and graphics application that uses Python 2 for automation; and “an internal testing framework that we use is based on Robot/Jython,” with Robot being the testing framework (although Robot itself is Python 3 compatible).
In short, only a small number of packages pose truly intractable problems for migrators, as the vast majority of popular Python packages are Python 3 ready. But the users who need those packages are hard-pressed to find substitutes. Autodesk, for instance, is contempating a Python 3 upgrade path for Maya, but nothing firm has been announced yet, and no third-party solution is likely to fix that issue.
The timeframes for migrations in general showed strain. Despite Python 2 having its 2020 EOL date made clear years ahead of time, only 18% had been working on the problem for more than two years. Around half had been preparing migrations only in the last six months (21%) or not at all (28%). Less than half of the respondents said their company had a Python 2 to Python 3 migration plan in place; 31% were a flat “no,” while 22% weren’t sure if a migration plan existed.
Of all the strategies to manage Python 2 migrations, one that almost no one is using is buying third-party support to keep Python 2 apps running. Only 1% of respondents said they were taking this path.
Of the rest, many have “no plan ” (10%) or “don’t know” (9%). The rest are electing to support Python 2 apps internally (7%), sunset the apps altogether (5%), or rewrite them in a different language (2%).
This last metric, along with the 60% Python 2 to Python 3 conversion rate, bodes well for Python’s continued life in both SMBs and enterprises. Judging from the ActiveState survey results, the end of Python 2 has not by and large been an excuse to abandon Python for other languages.