In early June, Guido van Rossum, the father of Python, gave a speech called "Python Language" at today's PyCon US conference. Recently, he accepted an interview with IT media Infoworld and talked about the future of Python. Let’s take a look at what Father Guido thinks of the future of Python.
The application of Python in the field of mobile computing
Guido: Mobile is still a difficult platform for Python, but it is not as difficult as the browser platform because Python can actually run on all brands of smartphones Up. You just need to find someone who knows how to build a mobile version of Python.
Standard CPython source code can almost be compiled into binaries that can run on Android and Apple phones. There are many people working hard in this area and constantly contributing patch packages. But progress has been slower than I would have liked. But then again, I don’t develop mobile apps myself, so I don’t have much motivation to get involved myself. But I'd love to see progress on this.
Python replaces JavaScript?
Guido: This is not our goal. Due to the structural issues of the browser platform, it is difficult for us to compete with JavaScript. The most we can do is translate Python into JavaScript. Typically, however, translated programs run slower than native Python programs and slower than similar programs written in JavaScript. Now some people are trying to translate Python into JavaScript and run Python in the browser.
Thoughts on WebAssembly
This might make it possible to run Python in the browser. If it replaces asm.js, it basically means that JavaScript is no longer the only language used on the Web platform, but becomes this thing similar to assembly language. This is a bit like Python. The underlying Python interpreter of the Python code you write is actually written in C language. During compilation, the Python code is translated into machine code, and some kind of assembly language is also involved.
If we can’t kill JavaScript in browsers, we might be able to make JavaScript the unifying translation object for any language that wants to run in a browser. In this case, perhaps Python and other languages, such as Ruby and PHP, can be efficiently translated into the underlying JavaScript.
WebAssembly is actually an opportunity for Python developers. I believe there will be a trial period where those who prefer development tools can have the opportunity to explore the best way to run Python on top of WebAssembly. After their experiment is successful and they start to promote it, we can say to Python developers, "You can now write browser client apps in Python." But now is not the time.
Python performance improvements
Guido: The performance of Python 3 has caught up and is much faster than in 2012. Alternatively, there are Python implementations like PyPy. There are some new versions of the Python interpreter that are also trying to improve speed.
In fact, the performance of Python is not as bad as people say, and because Python is mostly implemented in C language, many things can be done as fast as C language. I still think that Python is fast enough for most things.
Although there are no new features in Python 3 to improve speed, we have made many aspects of the language faster: for example, reference counting is faster than before. The main thing is to optimize the existing code, but as a user, it is difficult to notice the difference.
And if you urgently need to speed up a Python program, you can try using PyPy. It's mature enough to be worth trying.
Why is Python popular?
Guido: Mainly because it is easy to learn and use, and the community is open and developers are active and helpful.
How is Python development currently and in the future? What's the plan?
Guido: Currently, and over the past five years or so, it is mainly other people who are driving the development of Python. I occasionally provide guidance on whether a new idea is worth accepting, usually when designing to add new syntax. I rarely interfere when it comes to standard library development. Sometimes, I have to ask everyone to stop discussing and compromise.
My idea is to make the community self-perpetuating so that I can eventually retire or at least take a long vacation. I hope that in the future this language will absorb new ideas from other languages or other fields.
I finally want to talk about SciPy and NumPy. These two teams are promoting the use of Python as an alternative to Matlab. Our alternatives are open source and better, they can do it. They are taking Python into areas I never imagined before. They've developed things like Jupyter Notebooks for using interactive Python in the browser.