InfoWorld: So WebAssembly presents opportunities for Python developers?
Van Rossum: I think it would. There's going to have to be a stage of experimentation where people who are more interested in developing tools than producing applications get a chance of figuring out what the best way is to run Python on top of WebAssembly. Eventually, when those people are successful and they start evangelizing, we can tell regular Python developers, "Now you can also write browser client apps in Python." We're not there yet.
InfoWorld: When I interviewed you in 2012, Python was criticized for performance. You told me at the time it was fast enough. How has performance improved since then?
Van Rossum: Python 3 has actually caught up. Python 3 is significantly faster than it was in 2012. Otherwise, there are specialized versions of Python like PyPy that are still around. There are some new versions of Python interpreters that are working on improving the speed.
It turns out that actually, Python's performance story is not as bad as people make it out to be, and because most of Python is actually implemented in C, there are many things that Python can do just as fast as C. I continue to believe that Python is fast enough for most things that you would want to do with Python.
InfoWorld: Have any specific features been added into Python in the 3.x line to make it faster?
Van Rossum: We have not added features to the language. Behind the scenes, we have made various parts of the language faster; the reference counting, I believe, is a little faster. It's all just tuning of the existing stuff, but as a user you don't notice a difference. There's no recommendation of, "Well, write your code in a different way and then it becomes faster.” That's unnecessary.
InfoWorld: You mentioned PyPy. What is your impression of projects like PyPy or Futhark, which is a functional programming language that puts Python onto GPUs?
Van Rossum: The latter one I've not even heard of. Things like that are usually pretty esoteric. They're really out there for people who are doing cool, crazy stuff that probably isn't directly usable for your typical Python programmer.
But PyPy is pretty mature. If you feel an urgent need for speed in a general-purpose Python program, it is worth seeing if an application actually runs faster with PyPy. You might run into situations where it runs slower, though, because you're using an extension module and going back and forth between the extension module and your Python code is somewhat slower.
If most of what you're doing depends on an extension module anyway, CPython is probably still your friend.
Sign up for CIO Asia eNewsletters.