Dilmer González – Sr. Backend Engineer
There’s no secret that Python has become a very popular programming language in the most recent years and actually it’s considered as one of the fastest-growing programming languages in the world.
According to JetBrains, Python is the top 3 in the list of primary programming languages for 2021, as shown in the following image:
I’m pretty sure that many of you have asked yourselves some of these questions: Why has Python become so popular? Where does this Python popularity come from?
You’re not alone.
I have asked the above questions to myself as well. So, the idea of this blog post is to provide some of the most relevant aspects that have made Python so popular recently, so let’s start with them.
Easy to learn and use
Python is considered as one of the easiest languages to learn for everyone, from students and junior developers to senior developers and architects. The ease of Python consists in its focus on the natural language, so this makes Python a language that can be more intuitive at the time that we’re reading the code from other developers and therefore, it takes less time for a person to understand the code.
When Python was created (in the 1980s), the idea was to be a general-purpose language and then, it gained popularity due to the simplicity of its syntax and also because it’s an interpreted language, which lets developers change the code base easily and quickly and therefore, the development time decreases, causing the productivity to increase at the same time. So, this is why more developers and companies have preferred Python in the most recent years and this explains why this language has acquired so much popularity as well.
Supportive Python community
The Python community has more than 30 years of being helping developers with resources, which makes this a mature community with a lot of experiences accumulated. Nowadays, this community continues to be strong and helps a lot of developers around the world solve their problems in a relatively fast way, since there are a lot of different resources available, like videos, tutorials, online courses, examples, etc.
The great help that Python community provides to all developers from around the world, makes that the the time that a developer needs to take to solve a problem is less than other programming languages, so this improves the productivity in the companies because the developers can make more progress in their tasks, since the community is constantly helping to unblock them when a problem is raised.
Used by renowned corporate sponsors
It is known that when a famous company backs a particular language, it grows up faster. We have some examples: C# is backed by Microsoft and Java by Oracle and Sun.
In the case of Python, the language is backed by Facebook, AWS and Google, with the last one even dedicated a portal only for Python. There are also several efforts and money invested for training in Python programming language and also, a lot of Google services are implemented by using Python.
Lots of libraries and frameworks
The reason why this happens is because of the corporate sponsorship and the big support that the Python community has nowadays. There are libraries for almost everything you want to create using Python, which saves you time and money from the beginning when you’re developing, so a lot of times you don’t have to reinvent the wheel.
In Python we have libraries for Machine Learning like scikit-learn, Natural Language Processing like nltk, Backend Development like Django, Databases like SQLAlchemy and so on. Here we have a list of some of the most popular libraries that we have in Python and their purposes:
- Django, Flask – Backend Development.
- Numpy – Scientific computing.
- SciPy – Engineering applications, science and mathematics.
- Pandas – Data manipulation and analysis.
Versatility and flexibility
One of the main facts about the versatility in Python, is that if you ask any developer that has used Python for a long period of time, they will agree that this language can be used in a variety of environments, like mobile applications, hardware programming, web development, data analysis, etc. So, this high number of applications where Python can be used, makes it more attractive to developers and companies to choose this particular language.
The flexibility of Python lets developers that have a lot of time working with this language, to not limit themselves to build similar things all the time and instead, they can constantly be trying something new from what they had been doing before. This can be achieved thanks to the versatility that Python has in order to create different kinds of applications by using the same language for everything and this is not possible in other programming languages.
Machine Learning and Big Data capabilities
Both Machine Learning and Big Data have gained popularity and right now they are some of the most trending topics in the Software world. Here is when Python comes in, since it has a huge variety of libraries that can work with both features. Some examples of these libraries are:
- Scikit-learn – Machine Learning.
- TensorFlow – Neural Networks.
- PySpark – Big Data Analysis.
Python is considered the second most popular programming language for data science and analysis after the R language. This is due to the versatility and flexibility that Python has, in order to work on different environments and also because of the plenty of libraries that it offers to work on different areas.
Python is not only used to develop big features inside a system, but also for developing automation tests. As we have mentioned above in this article, this programming language has a vast amount of libraries available for different purposes and testing is not the exception to the rule. Some of the most popular testing libraries for Python are: Nose, Unittest and Pytest.
One of the things that has made Python so popular for automation is that we only required quite a few lines of code to automate features in our system and the performance is really good. So this means that we can have a lot of automated tests that can be run in a small period of time and using relatively few lines of code, which means that the efficiency for testing in general is really great.