After its release in 1990 and experiencing a huge boom in popularity in the 2010s, Python has grown into one of the most widespread programming languages in the world. Many universities have begun teaching Python in their introduction to programming courses, and it’s a common first programming language for individuals learning how to code. Despite its popularity, Python is a controversial topic among software developers.
The main downside of Python is that it can be an incredibly slow programming language. Being an interpreted language, the Python interpreter must run through the program line by line to run rather than building the entire program before running. And, with the global interpreter lock preventing the interpretation from running on multiple threads, this performance impact can have a major effect on large applications.
So if Python is so slow, why do so many people still use it? And, will newer languages eventually replace it? Let’s explore where Python is growing and where it is struggling.
Where it Succeeds
While Python a variety of industries and projects use Python, it truly excels with scripting, data analysis, and machine learning.
You can see this with Python’s popularity in the scientific community. One reason the scientific community uses Python so heavily is that the language is incredibly easy to learn and understand. It doesn’t require a deep understanding of data structures and types, and there are no requirements for semicolons and brackets. The setup for creating programs is minimal, and the syntax for many of the commands is very literal (i.e. for loops and if else statements). This is a key factor as it means that individuals without a background in computer science can quickly pick up on the language and begin creating programs for their research.
Secondly, Python is a great scripting language with numerous packages for data analysis. NumPy, MatPlotLib, and Pandas are all Python packages that make data analysis easy to perform. Speaking from experience as someone who has worked in the scientific community before, Python is not going anywhere and will continue to be the king of languages for this industry.
Similarly, Python remains as the number one programming language in the machine learning industry. Python libraries such as Scipy, tensorflow, and Scikit-learn handle a lot of crucial tasks for machine-learning programs. That allows developers to create new programs without the need to implement things such as regression, clustering, and classification themselves. This has helped solidify Python’s role in the machine-learning industry. As more tools are available, more developers will flock to Python, only growing the large support community.
Even with its performance issues, Python remains a capable backend language for web applications. In fact, Python is the backend language for many popular web applications. For instance, Instagram, Spotify, and Dropbox are all built using large amounts of Python code. Django and Flask are the two most common web application frameworks for Python. These frameworks, coupled with the simplicity of Python and the large support community of Python developers, allow for quick development of applications.
It’s also worth noting that tools under development should help negate the issues with Python’s performance. Profilers are tools that analyze the performance of a Python program. Developers can use them to see where their code is taking longer to run and where it is taking up more memory or CPU percentage.
Where it Struggles
While you can build applications using Python as the backend language, Python is not considered the best option the way it is for scripting and data analysis. The reason is that many other languages can do the same things Python can without facing the same issues. As mentioned before, Python being an interpreted language makes program runtime a bigger concern than with other languages. The lack of typing makes scalability and code readability difficult. There is little support for lambda functions, and CPU=intensive parts of the program have to call into packages built in other languages to achieve decent performance. Finally, there are no compilation errors resulting in all errors appearing at runtime.
Another area where Python struggled to take hold is mobile application development. Although there are frameworks, such as Kivy, for mobile development, Python hasn’t secured a foothold in this industry. There are already long-established languages like Java and Kotlin for Android and Swift for iOS. Every year, newly-launched companies focus solely on mobile apps, and Python is unlikely to be the language of choice for these apps.
The Future of Python Development
It’s unlikely Python is going anywhere soon. When it comes to scripting and data analysis, no other language currently competes with the market share that Python holds and the tools that it provides. Data analytics, machine learning, and AI all are massive industries only expected to continue to grow. That means Python will continue to grow alongside them. However, it would be wrong to call Python the language of the future. The fundamental issues with Python prevent it from ubiquitous usage. The future may be bright for Python, but for web and mobile development, better options exist.