Python rivals?
Python has two direct competitors, with comparable properties and predispositions. These are:
The former is more traditional and more conservative than Python, and resembles some of the old languages derived from the classic C programming language.
In contrast, the latter is more innovative and more full of fresh ideas than Python. Python itself lies somewhere between these two creations.
The internet is full of forums with infinite discussions on the superiority of one of these three over the others, should you wish to learn more about each of them.
Where can we see Python in action?
We see it every day and almost everywhere. It's used extensively to implement complex Internet services like search engines, cloud storage and tools, social media and so on. Whenever you use any of these services, you are actually very close to Python, although you wouldn't know it.
Many developing tools are implemented in Python. More and more everyday-use applications are being written in Python. Lots of scientists have abandoned expensive proprietary tools and switched to Python. Lots of IT project testers have started using Python to carry out repeatable test procedures. The list is long.
Why not Python?
Despite Python's growing popularity, there are still some niches where Python is absent, or is rarely seen:
There is more than one Python
There are two main kinds of Python, called Python 2 and Python 3.
Python 2 is an older version of the original Python. It's development has since been intentionally stalled, although that doesn't mean that there are no updates to it. On the contrary, the updates are issued on a regular basis, but they are not intended to modify the language in any significant way. they rather fix an freshly discovered bugs and security holes. Python 2's development path has reached a dead end already, but Python 2 itself is still very much alive.
Python 3 is the newer (or to be more precise, the current) version of the language. It's going through its own evolutionary path, creating it's own standards and habits.
These two versions of Python aren't compatible with each other. Python 2 scripts won't run in a Python 3 environment and vice versa, so if you want the old Python 2 code to be run by a Python 3 interpreter, the only possible solution is to rewrite it, not from scratch, of course, as large parts of the code may remain untouched, but you do have to revise all the code to find all possible incompatibilities, Unfortunately, this process cannot be fully automatized.
it's to hard, to time-consuming, too expensive, and too risky to migrate an old Python 2 application to a new platform, and it's even possible that rewriting the code will introduce new bugs into it. It's easier, and more sensible, to leave these systems alone and to improve the existing interpreter, instead of trying to work inside the already functioning source code.
Python 3 isn't jsut a better version of Python 2 - it is completely different language, although it's very similar to it's predecessor. When you look at them from a distance, they appear to be the same, but when you look closely, though, you notice a lot of differences.
If you're modifying and old existing Python solution, then it's highly likely that it was coded in Python 2. This is the reason why Python 2 is still in use today. There are to many existing Python 2 applications to discard it altogether.
NOTE
If you're going to start a new Python project, you should use Python 3, and this is the version of Python that will be used during this course.
It is important to remember that there may be smaller or bigger differences between subsequent Python 3 releases (e.g., Python 3.6 introduced ordered dictionary keys by default under the CPython implementation) - the good news, though, is that ll the newer versions of the Python 3 are backward compatible with the previous versions of Python 3. whenever meaningful and important, we will always try to highlight those differences in the course.
All the code samples you will find during the course have been tested against Python 3.4, Python 3.6,, Python 3.7, and Python 3.8.