What makes Python the Most Powerful and Fastest Growing Language
If you look at the rankings of the most popular programming languages, Python is stably at the top positions and surpassed only by languages (Java, C, C ++) that have a much more important history and notoriety.
The ranking released a few days ago on the official website of the magazine between a surprise and the other has underlined the growth (or loss) in popularity of the main current programming languages.
The infographic that you can consult here shows the top 13 of the most popular programming languages of 2017, among which Python has earned two positions compared to last year going from third to first place, and leaving behind C and Java, which compete for the other two steps of the podium.
Image source: www.amazonaws.com
In this approach to Python, however, there are some things that are good to know.
Python 2 and Python 3
Python is available in two versions. The strand 2.x (in practice today 2.7.x releases) has long represented the "standard" platform for developers, the one that was to be known and used even if there were already 3.x versions. For two reasons: the two macro versions use a different syntax, which made a large amount of code incompatible; for Python 3.x there were not many libraries that were available for version 2.7.
Today things are different and Python 3 (we are at release 3.6) has all the tools you need as libraries. In addition, it brings several useful functions that are missing in Python 2.7. Who starts to approach the language should consider the 3.x version, even knowing that the 2.7 will be officially supported for some years.
All included and extensible
The importance of third-party libraries that have influenced the comparison between versions 2 and 3 of Python is one of the many signs of the importance that the language has the concept of expandability. Those who approach Python must, therefore, consider that, compared to other programming languages, the "official" basic equipment is only a starting point.
This does not mean that the standard libraries are incomplete. On the contrary, they are a robust set that covers all the main needs for basic Python development (from file and directory management to networking, from threading to asynchronous operations) and that also touches on more complex issues such as Internet protocol management, JSON formats, a minimum of GUI and SQLite databases. Beyond this base, there are thousands of third-party libraries, which should be widely considered and used.
There is obviously an "official" version of Python. It is the one you download from the Python Software Foundation site and it is usually already pre-installed in Linux distributions and also in macOS. Some operating systems may not have Python 3 but version 2.7 (just check if the python3 command is recognized), the update is still very simple.
That said, there are many "versions" - but would rather distributions, such as for Linux - not modifying the language itself but accompanying the outset of some tools, features and libraries for development in specific areas. Some examples are Anaconda for machine learning, IronPython for .Net environments, Jython for Java developers.
Simple but rigorous
Python is a development language that is easy to learn. The vocabulary is clear and the syntax is designed to be well understood. Many operations that in other languages would require different lines of code can be expressed with simple instructions, which favors both the development itself and the readability. This simplicity helps Python neophytes but still leaves the door open to considerable possibilities of extension, through third-party libraries.
From a certain point of view then Python is a language with complexity, if desired, growing. It starts by exploring its simple side of scripting and automation language, also helped by the fact that development environments are almost always interpreters and not compilers. Then you grow up in difficulty and you see the sides of Python as a general and transversal language.
For what yes, for what not
Python has won the role of language suitable for any development. It is a generic language with which to create applications both from the command line and to the graphical interface, also distributed as autonomous executables (thanks to additional tools).
Given this, of course, there are things that Python can do better than others. Or that it is easier or more popular to do in Python than with other languages.
Historically it has been used mainly for scripting and automation elements, with these two terms understood in the broadest sense possible and not only for system automation.
Today, for example, whole web services are built, thanks to a good support of asynchronous events. Language has also become very popular as a platform for machine learning, thanks to the fact that the main libraries in this field have Python interfaces.
Then there are the things Python cannot do well, or at all. For example, it is not a low-level language and therefore it is not good to create components such as drivers. It is not suitable then to create multiplatform executables and it is not even the ideal choice if the code must be as fast as possible. Which brings us to one last aspect.
A question of speed
If you want to unleash a controversy with the language lover, just say it's slow. The controversy is easy because it has not really been thought for speed, starting from the fact that usually the Python runtimes are interpreters and not compilers. But even when you compile Python code - which is possible, with the right tools like PyPy - dynamic typing is still detrimental to performance because it prevents you from maximizing the code.
Once the fundamental question has been established, the point is to understand how far it can go. Often it is: there are programs that could be faster if their developer had exploited the possibilities offered by external libraries. For example, NumPy is a virtually mandatory package for those who do intensive mathematical calculations with Python.
Today Python development is used for everything, ranging from simple system scripts to machine learning to mobile development.
It continues to be Python is the fastest-growing major programming language by developers and is a good "investment" for those who want to dedicate time and learn how to use it.