From January 2020, Python 2.x branch will no longer be supported by its creators and will see no new major releases, bug fixes, or security updates. It seemed like the developer community had a lot of time when Guido van Rossum in 2014 made the announcement. But finally, it is becoming a reality and the concerns are rising rapidly.
The Challenges With Migrating
Python 3 has countless technical and end-user enhancements and also rectifies some of the fundamental flaws. It has also the default Python interpreter for many Linux distributions and even some of the famous Python learning resources are recommending Python 3.
However, many people have still not accepted Python 3 as their go-to language and there are some significant reasons behind it. And one of the major reasons behind it is the fact that Python 3 is not backwards-compatible. Meaning, if you are working on a project with any Python 2.x version then the use of Python 3 won’t be a good option. But if your project is not big enough and not going to be maintained after Jan 2020, you don’t have to turn to Python 3 as your applications or libraries will not suddenly stop working.
While many are complaining that migrating Python 2.x code to Python 3 is one of the most daunting tasks, many have started to use tools and resources that are available exclusively to help developers make the migration.
Here are some of the tools and resources you can use to get help while migrating your code:
- Can I Use Python 3: It helps you determine which projects – directly or indirectly – are blocking you from supporting Python 3.
- 2to3: It is a Python program that reads Python 2.x source code and applies a series of fixers to transform it into valid Python 3.x code
- Six: It provides simple utilities for wrapping over differences between Python 2 and Python 3. It can be downloaded on PyPI.
Furthermore, if you want more information about the porting process, you can always check the Python official website where they have an in-depth guide “Porting Python 2 Code to Python 3” in order to help developers figure out how best to support both Python 2 & 3 simultaneously.
Time To Port Your Code
While many are concerned about how painful the Python 3 migration task will be, there is one more thing that has recently come up and making the developers giving a second thought about still sticking to Python 2.x.
Recently on a blog post, UK National Cyber Security Centre (NCSC) has advised all Python coders to migrate their code to Python 3. According to NCSC, using unsupported modules would soon bring up some serious cybersecurity challenges your organisations and applications and would lead to a data breach if not upgraded to Python 3 or higher version.
Talking about the seriousness of the challenges, applications could be victims to some of the most notorious hacks such as WannaCry that infected over 230,000 computers across the globe and the latest Equifax breach that cost the company $700 million of settlement. And the major reason why Python 2.x would become victims of these kinds of attacks is that fact that there wouldn’t be anyone to maintain the programming language’s security. It would be much more like a gateway for threat actors.
Moreover, if not upgraded to Python 3 or higher version, popular applications such as NumPy, Requests, and Tensorflow, etc. will also fall prey to threat actors. And keeping that in mind these applications have also decided to drop Python 2.x by 2020.
Over the past couple of years, cyber-attacks have created a tremendous amount of wreck in the industry. And even after witnessing that, if companies and developers ignore the consequences than it would be nothing less than living denial — accepting all the risks that come with using unsupported modules.
There might be many who would argue that even Python 2.x wouldn’t cause any threat; however, when there is an upgrade happening and while so many companies are already porting to Python 3, there must be something serious.