Do You Know the Difference between Python 2 and 3?
While the debate goes on about which version of programming language is better and more suitable in the current scenario, it is worth understanding the difference between Python 2 and 3 and making a personal decision rather than a generic one. Let us start by learning the history of the two versions.
Comparative History of Python 2 and Python 3
- The first version of Python 2 was released in 2000, while the latest (2.7) was released in 2010
- Python 3 came into existence 8 years after the first Python 2. Its newest available version 3.6 was released ion 2016. A newer version is under development.
- Python 3 started encroaching on the Python 2 users and by the end of one year of co-existence, usage of Python 2 for various projects had fallen by 8.2 %. This is an indicator of the reception and acceptance of Python 3 at the cost of Python 2.
Let us now try and understand the difference between Python 2 and 3:
The Tussle between the Legacy and the Future
Python 2 was actively used by companies for over 15 years; it is an integral part of their software and it will not be easy to suddenly remove it completely. But, the transition from 2 to 3 is on. Any future software will not be using the older version and hence it is a waste of time to try and master it. You can pick up a few relevant segments, which could help in the smooth transition.
Different and Incompatible Libraries
Many of the libraries of Python 2 are incompatible with the newer Python 3. Hence, a completely new set of libraries is being created for Python 3. This makes the older version forward incompatible, while the newer version is backward incompatible. Having said that, the libraries of the older version cannot be deleted as they are still required for some of the older but critical software.
ASCII vs Unicode Support
The storage of strings is in a completely different format. While in Python 2 the default storage for strings is in ASCII, the default option for the newer version is Unicode. The strings in Python 2 can be stored in Unicode by the addition of a ‘u’ to them. The benefit of Unicode is that it can store foreign characters, which results in more choices for the coders, thanks to its versatility.
The Mathematical Operation of Integer Division
This is different in the two versions in terms of the output of division performed on a pair of integers. In Python 2, the result would be delivered in the same format as the input. Hence, the resulting value of 5/2 is 2 and not 2.5. This has been corrected in the newer version. The syntax of Python 3 can actually make it easier to learn and pick up.
The Print Statement Syntax
Though this difference does not impact the functionality of the newer version of Python, it is still a glaring difference. The print syntax of Python 2 is – Print “Good Morning”. This has been changed in the newer version to – Print (“Good Morning”). This could take some time to adjust to for those who have been using Python 2 for a long time.
The Transition from Python 2 to Python 3
The newer companies are opting to use Python 3 as Python 2 is on its way to becoming obsolete. The companies that have been associated with Python 2 for a long time have also started the transition process
Making the Choice in the Present Times
Though Python 2 is a legacy, it is definitely not the future. As a beginner, it is better to learn the trend rather than delving into history as it would not be able to bring much to the future. Python 3 is easier to understand as compared to Python 2. Moreover, the older version will not be able to get any technical support after 2020.
You might need to learn Python 2 in some situations, such as when the company you join has the legacy code written in the older version. Also, if your project depends on the availability of a software which has been written using the older version. Since the porting of libraries will not be possible, it makes sense to adopt the difference between Python 2 and 3 learn the older version as well.