Times have never been better for Python. The language currently ranks as the most popular programming language in the world, according to the TIOBE Index — a position that reflects years of steady growth over the past two decades.
That growth stems from a variety of factors. One is the fact that Python — despite its humble origins as an enhanced shell scripting language — has evolved into one of the most versatile, dynamic languages out there. It's used for everything from web development, to internet of things (IoT) programming, to AI and beyond. Another is that Python code is very easy to write and execute, which makes Python a language of choice for introductory programming courses. Basically everyone who takes Coding 101 at college, or attends a coding bootcamp, today learns Python.
Yet, part of me wonders how long Python's heyday will last. While there's certainly nothing inherently wrong with the language, I'm in some ways surprised that it has managed to become as popular as it has, and I am a bit doubtful about whether Python will remain a top programming language 10 or 20 years from now.
Why, you ask? Well, here are four reasons why Python is arguably more popular than it deserves to be.
1. Python Is Not Fast
Arguably the programming language's biggest shortcoming is that applications written in Python are just not fast. At least, they're not nearly as fast as those coded in languages like C or even Java (which is itself not an especially fast language).
For this reason, I worry that we're shooting ourselves in the foot a bit by writing so much code in Python. The code may be easy to write and deploy, but we're sacrificing speed, efficiency, and performance. In a world where every millisecond counts, Python is just not a great choice.
2. Python's Syntax Is Too Rigid
Part of the reason Python is so popular, especially among people newer to coding, is that it requires a really specific syntax. That syntax happens to result in code that is very neat and readable.
This is great if you don't mind taking the time to follow all of Python's syntactic rules. But if you just want to churn out code quickly, Python is probably not the best language.
So, if we want to prioritize flexibility and dynamism over having everyone's code look very pretty and consistent, Python is not the best language for the future.
3. Python Provides a Limited Programming Experience
Another part of the reason why Python is popular with beginners is that it's easy to use. You don't have to pass your code through a compiler.
The downside of Python in this respect, however, is that it doesn't actually provide a holistic software development experience. People who learn to code in Python are not learning about every aspect of a traditional software development pipeline, and they will face a learning curve if they go on to work with languages that are not interpreted.
In fact — and this may sound a little harsh — knowing how to code in Python is merely one step up from knowing how to run programs in a Bash shell, which is not coding at all.
From this perspective, you could argue that Python is creating a generation of programmers who don't necessarily know "complete" programming. They just know how to write interpreted code.
4. Nothing Really Big Has Been Written in Python
This statement may also place me in some hot water, but I'll go ahead and make it: As I look around the world today, I don't see any truly large, complex, momentous applications or platforms written in Python.
Sure, there are plenty of major websites that use Python in one way or another, mostly on the back end. And there are probably millions of smaller applications out there developed in Python.
But there is no Python-based equivalent to WordPress (although there are some Python-based CMSes out there, most of which you have probably not heard of). There is no office productivity suite that depends heavily on Python. There is certainly no operating system, or even a major part of an operating system, coded in Python.
This observation isn't a criticism of Python as much as it's an effort to highlight the fact that, if Python were poised to remain a top programming language for decades to come, you'd think someone would have done something more interesting with it by now than write scripts and simple apps. But they haven't, and they probably won't.
Admittedly, the arguments I've made above against Python are all subjective and certainly quite debatable. Plenty of people are more bullish about Python than me.
And I'm not saying that Python should never be used. It certainly has valid use cases. But those use cases mostly involve writing relatively simple scripts and applications, not trying to use Python as the go-to language for writing everything under the sun.
After all, as I said above, Python was designed originally to be basically just a shell scripting language. It has morphed into a much more popular sort of monster, and I think that trend will prove to be an anomaly. Ten years from now, I suspect we'll be looking back and wondering what we were thinking when we made Python the most popular programming language in the world.