6 min read

Python is the fastest growing programming language on the planet. This year’s Stack Overflow survey produces clear evidence that it is growing at an impressive rate. And it’s not really that surprising – versatile, dynamic, and actually pretty easy to learn, it’s a language that is accessible and powerful enough to solve problems in a range of fields, from statistics to building APIs. But what does the future hold for Python? How will it evolve to meet the needs of its growing community of engineers and analysts?

Read the insights from 3 Python experts on what the future might hold for the programming language, taken from Python Interviews, a book that features 20 conversations with leading figures from the Python community.

In the future, Python will spawn other more specialized languages

Steve Holden (@HoldenWeb), CTO of Global Stress Index and former chairman and director of The PSF:

I’m not really sure where the language is going. You hear loose talk of Python 4. To my mind though, Python is now at the stage where it’s complex enough.

Python hasn’t bloated in the same way that I think the Java environment has. At that maturity level, I think it’s rather more likely that Python’s ideas will spawn other, perhaps more specialized, languages aimed at particular areas of application. I see this as fundamentally healthy and I have no wish to make all programmers use Python for everything; language choices should be made on pragmatic grounds.

I’ve never been much of a one for pushing for change. Enough smart people are thinking about that already. So mostly I lurk on Python-Dev and occasionally interject a view from the consumer side, when I think that things are becoming a little too esoteric.

The needs of the Python community are going to influence where the language goes in future

Carol Willing (@WillingCarol), former director of The Python Foundation, core developer of CPython, and Research Software Engineer at Project Jupyter.

I think we’re going to continue to see growth in the scientific programming part of Python. So things that support the performance of Python as a language and async stability are going to continue to evolve. Beyond that, I think that Python is a pretty powerful and solid language. Even if you stopped development today, Python is a darn good language.

I think that the needs of the Python community are going to feed back into Python and influence where the language goes. It’s great that we have more representation from different groups within the core development team. Smarter minds than mine could provide a better answer to your question. I’m sure that Guido has some things in mind for where he wants to see Python go.

Mobile development has been an Achilles’ heel for Python for a long time. I’m hoping that some of the BeeWare stuff is going to help with the cross-compilation. A better story in mobile is definitely needed. But you know, if there’s a need then Python will get there.

I think that the language is going to continue to move towards the stuff that’s in Python 3. Some big code bases, like Instagram, have now transitioned from Python 2 to 3. While there is much Python 2.7 code still in production, great strides have been made by Instagram, as they shared in their PyCon 2017 keynote.

There’s more tooling around Python 3 and more testing tools, so it’s less risky for companies to move some of their legacy code to Python 3, where it makes business sense to. It will vary by company, but at some point, business needs, such as security and maintainability, will start driving greater migration to Python 3. If you’re starting a new project, then Python 3 is the best choice. New projects, especially when looking at microservices and AI, will further drive people to Python 3.

Organizations that are building very large Python codebases are adopting type annotations to help new developers

Barry Warsaw (@pumpichank), member of the Python Foundation team at LinkedIn, former project leader of GNU Mailman:

In some ways it’s hard to predict where Python is going. I’ve been involved in Python for 23 years, and there was no way I could have predicted in 1994 what the computing world was going to look like today.

I look at phones, IoT (Internet of things) devices, and just the whole landscape of what computing looks like today, with the cloud and containers. It’s just amazing to look around and see all of that stuff. So there’s no real way to predict what Python is going to look like even five years from now, and certainly not ten or fifteen years from now.

I do think Python’s future is still very bright, but I think Python, and especially CPython, which is the implementation of Python in C, has challenges. Any language that’s been around for that long is going to have some challenges. Python was invented to solve problems in the 90s and the computing world is different now and is going to become different still.

I think the challenges for Python include things like performance and multi-core or multi-threading applications. There are definitely people who are working on that stuff and other implementations of Python may spring up like PyPy, Jython, or IronPython.

Aside from the challenges that the various implementations have, one thing that Python has as a language, and I think this is its real strength, is that it scales along with the human scale. For example, you can have one person write up some scripts on their laptop to solve a particular problem that they have. Python’s great for that.

Python also scales to, let’s say, a small open source project with maybe 10 or 15 people contributing. Python scales to hundreds of people working on a fairly large project, or thousands of people working on massive software projects.

Another amazing strength of Python as a language is that new developers can come in and learn it easily and be productive very quickly. They can pull down a completely new Python source code for a project that they’ve never seen before and dive in and learn it very easily and quickly. There are some challenges as Python scales on the human scale, but I feel like those are being solved by things like the type annotations, for example.

On very large Python projects, where you have a mix of junior and senior developers, it can be a lot of effort for junior developers to understand how to use an existing library or application, because they’re coming from a more statically-typed language.

So a lot of organizations that are building very large Python codebases are adopting type annotations, maybe not so much to help with the performance of the applications, but to help with the onboarding of new developers. I think that’s going a long way in helping Python to continue to scale on a human scale.

To me, the language’s scaling capacity and the welcoming nature of the Python community are the two things that make Python still compelling even after 23 years, and will continue to make Python compelling in the future. I think if we address some of those technical limitations, which are completely doable, then we’re really setting Python up for another 20 years of success and growth.

Co-editor of the Packt Hub. Interested in politics, tech culture, and how software and business are changing each other.

2 COMMENTS

  1. Hello
    I recently start my coaching for python and having doubt in many aspects . After going through this article , many of my doubts are cleared .
    But i still have doubt on the the difference between Loops and Exceptions.
    If you can give your view on Loops and Exceptions on your next article then i would be really thankful to you.
    Thank You

  2. Exceptions should be used only in Exceptional cases : ).

    You know what would be cool – if CPUs had dedicated instructions to do dict lookups, and other dynamic things like Smalltalk and old Lisp processors. The only problem I have with Python is it has no multi-line lambdas, no macros, no homoiconicity, no support for symbolic expressions, and it can be hard to add a type system *AFTER* the fact when you need it. Parinfer can let you edit Clojure code like it was Python, and then you can learn structional editing like paredit, since an editor can make Lisp code look like Python or anything else (see Mathematica) I think Lisp(Julia, Racket, Clojure) is the future. https://shaunlebron.github.io/parinfer/

LEAVE A REPLY

Please enter your comment!
Please enter your name here