Table of Contents
Python took a while to find its footing, but once it did, Python surpassed C, C#, JavaScript, and Java in popularity. It’s unlikely this trend is going to continue despite the language’s virtues.
Although Python recently passed Javascript in the middle of 2018, there are several competitors that outshine it. Go, Rust and Julia are innovative up and comers that may tank Python once and for all. If Python hopes to compete in the modern era, it needs to sort itself out.
The Upsides of Python: Why It’s Popular
Every programming language has its downsides, but despite Python’s pitfalls, there are multiple reasons why computer science majors love to use it.
- Python is Old: Since the 90s, Python has been used by programmers to create websites and web pages. It has a tight-knit community that can solve any coding issue.
- Python is Easy: What makes Python easy is its accessibility. While C++ is usually a coder’s first language, Python is less bumpy and makes more sense to use.
- Python is Versatile: Developers have made a package for every use purpose. NumPy, SciPy, Scikit-Learn, and Pandas are just 4 of the many kits developers use with Python.
While there are positives to Python, its downsides may be the language’s nail in the coffin.
The Downsides of Python: Why It May Fail
Python’s upsides are also its downsides. Being an old language, Python may have to throw out its bones to create a more useful product. Take note of the following vital Python flaws:
Speed
Python is very slow. It can take 2-10 times longer to complete a task with Python than most other languages. There are several reasons for this. For one, poor memory management in a Python application could lead to poor speed performance, but this can typically be solved.
However, there are some speed issues that come packed with the language. Since Python is dynamically typed, a lot of memory is used to reserve enough space for each variable. Python can only execute one task at a time, whereas most web browsers can execute 20x that amount.
With a decent computer server, these problems become obsolete, but they’re still worth noting.
Runtime Errors
Python script compiles when it’s executed. Due to this, coding errors manifest at runtime, leading to poor performance. Senior developers hate debugging Python for this reason.
Lambdas
A lambdas is an anonymous function that is not bound to an identifier. Anonymous functions are used for containing functionality that won’t be named due to their short-term usage. Closures and currying are popular use cases, but sorting and high-order functions also exist.
Despite Python’s flexibility, you can only use lambdas as an expression. Python is unique in that statements, and variable declarations are arbitrary, so Lambdas doesn’t see much use with it.
Whitespaces
One of the many reasons Python is beginner-friendly is due to its use of indentations and whitespace. This makes Python easy to understand, unlike C++, which relies on semicolons and brackets. However, C++ is more stable and maintainable than Python.
Scope
Python is still mostly dynamically scoped, which searches and evaluates expressions by each block before switching to the calling functions. This makes the programming language tedious, which is why most languages use static scoping. When Python tried static scoping, it failed.
Mobile Development
The switch to mobile development is a welcoming sight unless you program with Python. Although you can technically create apps with Python (with Kivy, not by itself), know that this coding language didn’t even account for smartphones when it was made.
It’s better to use a language intended for app development, like Flutter, React Native, and Iconic. While it’s likely Python will be used for laptops and desktop computers for years to come, you won’t be a well-rounded coder if you solely focus on Python.