Python’s Expiration Date

In the past decade, one language has soared in popularity and surpassed all of its predecessors in popularity, and that language is of course Python. Python is an easy to use, easy to read, easy to mutate object-oriented programming language that is interpreted by C. There are many reasons why Python has recently been crowned the most popular programming language in the world, but there are also many reasons that it could potentially lose that title.

What is Python used for?

Python is an interpreted language, meaning there is no compiler or assembler that is able to put the language into machine code. Instead, another language, C in Python’s case, is used to interpret the language with the Python.h header. Typically, this would place Python into the scripting category, however, I think it’s important not to ignore Python’s position as a programming staple universally.

Executable?

One enormous downside to Python is that Python code cannot be compiled into an executable. Any application or tool written in Python is going to require Python, as well as its dependencies, to be installed on the end-user’s system. Along with that are all of the correct versions of each package that correspond with the packages used to develop said application.

This is image title

Web?

One thing Python has proven itself to be shockingly talented at is running the back-end for websites. This is also an advantage that Python has to many other languages. Python has plenty of incredible packages for deploying APIs and even designing fully featured web-apps.

Machine-learning

Machine-learning is another prominent use for Python that has certainly helped to skyrocket its popularity in recent years. Machine-learning is at the forefront of technology, and Python, along with its close relationship with C is surprisingly effective and useful for machine-learning. While Python certainly does lack the performance of some similar languages like Nim, Julia, and Go, in a lot of ways it makes up for it by being quick, easy, concise, but perhaps more importantly,

universal.

Unix

It’s hard to talk about Python without talking about modern Unix-like systems. Python 2.7 has been deprecated for two months now and my desktop environment, as well as many more features in my operating-system still use Python 2.7. The combination of Bash and Python can make for some pretty useful scripts to run servers, populate data, complete requests, editing files, and certainly a lot more.

Python’s Downsides

Though Python is certainly a great language, and has made an enormous impact on the entire world, every language has its downsides in one regard or another, and Python is no different. Firstly, and most notable:

Python is slow.

Performance

Though I certainly agree that using logs and the for each method and generally just writing better code can certainly speed Python up, there are definitely some situations where the code will just have to be slow. Machine-learning is a great example because training neural networks often requires a deadly use of recursion. I can’t tell you how many times I’ve written a script to pull data in Python, and then experienced timeouts and slowdowns inside of my Command Line Interface (CLI.)

There are efforts to mitigate this, with the ever impressive Cython, but often the transition isn’t quite as simple as apples and oranges when trying to use Cython. Though there are many scenarios where Python’s limitations can’t be felt, I would be lying if I said that I have never had to switch to Julia, Nim, or C to get something done.

Dependencies

Another significant downside to Python is dependencies and virtual environments. In regards to a scripting language in the realm of Python, I think Python does quite well with dependencies and virtual environments. I like to compare Python to the two languages I use to do similar things, Julia and Nim, and Julia’s world of dependencies is quite similar to that of Python’s. One advantage that Julia does have is in my subjective opinion, virtual environments are a lot better, and are easier to use.

However, with the inclusion of Nim, Python is left dead in the water. With Nim, you can create a compiled executable containing all of the dependencies required. Nim easily trumps both Python and Julia on how dependencies and packages are handled for end-users and deployment.

Benefits of Python

Despite my gripes with Python, there are a lot of things I do love about Python.

Venerable

Python is a very commonly used programming language, which has a host of benefits like:

  • Easy to Google
  • Easy to talk about
  • Great packages
  • Frequent patches

Not only that, but Python is proven to be venerable and reliable. This makes Python an excellent choice for beginners, and also those who want to build stable, long-lasting technology incredibly fast that can simultaneously be used incredibly easily.

Looks like English

A big difference between a language like Python and similar scripting languages is just how readable and easy to understand Python is. Often reading Python can be like reading a strange, abstract book about variables equal to numbers. This not only makes it easier for beginners, but also makes it easier to mutate, modify, and decipher, which are all very important, and especially so to large code-pools with thousands of developers working in them.

Let’s be honest, we’d all rather write Python than C.

It’s FOSS

Though to some it might not matter whether or not their language is free and open source, to me it is certainly important. The Python Foundation functions primarily off of donations and education certificates, meaning Python is an entirely free and open piece of software that someone coded for you to use, which is great.

Is Python Going To Expire?

A question I actually get asked a lot is “ How long do you think Python is going to be around?” Often this question arises in the machine-learning space, because Python has a whole host of issues associated with machine-learning. It’s funny to think that any language could possibly be static and remain as the most used programming language for a very long time.

Fortran was the big deal before C, C was the big deal before C++, C++ was the big deal before Java, and that list goes on and on, and always will. Computers are exciting because they are constantly evolving, and with them the technology that they work over. Just 30 years ago, the idea of 16GB of RAM was an entirely outlandish concept, so there is no telling at all what the future holds for programming languages.

Though it’s certainly true that eventually Python will most likely be overtaken by another programming language, I think it’s important to remember that people still write Fortran, C, Java, and C++; so Python itself will likely be with us and be used very commonly for an extended period of time, however unpopular it might become.

Other Languages

This is image title
(src = http://julialang.org/)

The biggest threat posed to Python’s popularity is probably other new programming languages. The languages I have discussed, Julia and Nim, are simply what I believe to be the two big competitors to Python at this moment in time. Julia could certainly change the way we do machine-learning, and Nim is definitely a big game-changer for high-level scripting.

This is image title
(https://nim-lang.org/)

These languages might not have gained all that much steam just yet, but they are showing one thing that I think is important:

Advancement is possible.

That is to say that Python is not a solid brick wall, and the advancement of programming languages, machine-learning, and scripting is certainly not going to stop with it. Part of the reason I think these languages have been unsuccessful is because they are both statistically-typed, and for the most part

functional languages,
and I understand that can be a very jarring concept for those who have stuck with and love Python.

Conclusion

Should you learn Python?

My answer to that question will always be yes. Python is a great language to get you started and familiar with how to work through problems and begin programming. Python also has an overwhelming amount of resources compared to other languages including Julia and Nim, making it far easier to learn.

One thing I aim to provide is a very objective view on programming concepts, and I don’t think Python is going away anytime soon. I do, however, think it’s important to constantly grow as a programmer and more importantly broaden your horizons. If you’ve been using Python for awhile, maybe pick up a second language. Try a language from a different paradigm, and understand how that paradigm and the generic programming methodology your languages of choice utilize those concepts. I think this can be helpful, because not only can you learn to use faster methods, but also you can learn about a host of things that you might not have otherwise even considered.

#python #programming

Python’s Expiration Date
13.90 GEEK