Python 2 end of life: 31% of organizations have no Python 3 migration plans
Its end of life came as no surprise, and yet, many teams still do not have a plan going forward on what to do with their Python 2 apps. A recent study found that while most teams anticipate migrating to Python 3, there are some that will self-support Python 2, and even a few that will rewrite their apps in another language. What challenges will organizations face when they migrate their code?
According to the roadmap, the last major version, 2.7.18, arrives in April 2020. From then on, development ends. It is replaced by Python 3, which is not backward compatible. However, it fixes a number of issues and design flaws found in Python 2.
Despite this, it’s still common to see Python 2.7.
ActiveState conducted a survey of Python users about Python 2’s end of life. Over 1,250 respondents gave their answers about migration strategies, their organizations’ plans, and sentiments.
Python 3 challenges
How prepared are organizations for Python 3? According to this survey, not very.
The survey’s respondents revealed that 31% of departments currently have no Python 3 migration plans.
Half of the respondents expect to face difficulty finding replacement packages when they eventually move from Python 2 over to 3. 40% anticipate issues with testing and 37% worry about converting their code from Python 2 to 3.
A few organizations will not upgrade at all. Instead of upgrading their apps from 2 to 3, 2% of respondents will rewrite their apps in a different language.
5% will sunset their apps instead.
Self-supporting Python 2
What will happen to developers who haven’t upgraded? From Python’s documentation:
If people find catastrophic security problems in Python 2, or in software written in Python 2, then most volunteers will not help fix them. If you need help with Python 2 software, then many volunteers will not help you, and over time fewer and fewer volunteers will be able to help you. You will lose chances to use good tools because they will only run on Python 3, and you will slow down people who depend on you and work with you.
Some of these problems will start on January 1. Other problems will grow over time.
Software written in Python 2 will inevitably age and potentially will cause security problems and vulnerabilities over time. A number of projects have pledged to drop Python 2.7 support on or before the EOL date, including TensorFlow, Apache Spark, pandas, and PyTorch.
Some of the survey respondents are aware of this possibility, yet they plan to self-support Python 2 applications. This plan does not come without its own set of challenges, however. Over half of respondents (54%) expect third party package vulnerabilities and a third (37%) expect vulnerabilities in the core library.
Self-supporters will have to handle these potential issues without any help from the Python Software Foundation. More information about self-support can be found here.
“The sooner, the better”
Teams who have apps that use Python 2 should already have a plan going forward or should start. (Better late than never.) Whether the plan is to upgrade, self-support, or rewrite the app in a different language, organizations should begin setting the wheels in motion.
Regarding the survey results, President and CEO of ActiveState, Bart Copeland, said:
As Python’s popularity increases, more and more organizations rely on the open source language to run crucial applications. Yet, our survey found that only about half of respondents feel ready for Python 2 EOL. For security, reliability and ease of use, organizations must migrate to Python 3 – and the sooner, the better. ActiveState has a proven track record of providing commercial support for Python deployments in enterprises both large and small for the past 20 years. As a founding member of the Python Software Foundation, we are passionate about making open source easy for enterprises and inspiring coder passion with elegant solutions.
Readers who have not migrated and have questions should read the Python 3 Q&A for more information.