X
Business

Programming languages: Why Python hasn't taken off on mobile, or in the browser - according to its creator

Python creator Guido van Rossum reveals the strengths and weaknesses of one of the world's most popular programming languages.
Written by Liam Tung, Contributing Writer

Guido van Rossum, the creator of the hugely popular Python programming language, has given his thoughts on the language for the browser, mobile devices, and upcoming rivals like Julia. 

Van Rossum, the former "Benevolent dictator for life" of Python has, since November, been working at Microsoft as a distinguished engineer, helping the software giant give back to the Python community who have helped make his creation one of the most popular programming languages today, thanks to the rise of machine learning and data science. 

He's made a few announcements over the past few weeks in line with the PyCon 2021 conference, including that there is a plan to double the speed of CPython, the most widely used implementation of the language. Microsoft has funded a small Python team led by van Rossum to "take charge of performance improvements" in the interpreted language. 

SEE: Hiring Kit: Python developer (TechRepublic Premium)

But mobile app development is one of the key growth fields that Python hasn't gained any traction in, despite it dominating in machine learning with libraries like NumPy and Google's TensorFlow, as well as backend services automation. Python isn't exactly boxed into high-end hardware, but that's where it's gravitated to and it's been left out of mobile and the browser, even if it's popular on the backend of these services, he said.

Why? Python simply guzzles too much memory and energy from hardware, he said. For similar reasons, he said Python probably doesn't have a future in the browser despite WebAssembly, a standard that is helping make more powerful applications on websites.    

Mobile app development in Python is a "bit of a sore point", said van Rossum in a recent video Q&A for Microsoft Reactor.  

"It would be nice if mobile apps could be written in Python. There are actually a few people working on that but CPython has 30 years of history where it's been built for an environment that is a workstation, a desktop or a server and it expects that kind of environment and the users expect that kind of environment," he said. 

"The people who have managed to cross-compile CPython to run on an Android tablet or even on iOS, they find that it eats up a lot of resources," he said. "Compared to what the mobile operating systems expect, Python is big and slow. It uses a lot of battery charge, so if you're coding in Python you would probably very quickly run down your battery and quickly run out of memory," he said.  

But Python is popular for backend web services, although he said that JavaScript dominates frontend web development. Increasingly, Microsoft's JavaScript superset TypeScript is being used by web developers

"Python is a pretty popular language [at the backend]. At Google I worked on projects that were sort of built on Python, although most Google stuff wasn't. At Dropbox, the whole Dropbox server is built on Python. On the other hand, if you look at what runs in the browser, that's the world of JavaScript and unless it translates to JavaScript, you can't run it," van Rossum said. 

"I don't mind so much different languages have to have different goals i mean nobody is asking Rust when you can write Rust in the browser; at least that wouldn't seem a useful sort of target for Rust either. Python should focus on the application areas where it's good and for the web that's the backend and for scientific data processing."

Python's benevolent dictator also had some words for would-be rival language in scientific computing and machine learning, Julia, a language that is gaining in popularity but doesn't have the wealth of machine-learning and data-science libraries Python has. 

Developers wonder whether Julia will remain a niche language or if it has the potential to reach the heights of Python. Van Rossum said Julia, which emerged from MIT, was an "interesting take on something Python-like."

"[Julia] has enough details that are very similar to Python that when you realize, oh, but all the indexing is one ranges are inclusive instead of exclusive, you think arrgggh!" 

"Nobody should ever try to code in Julia and in Python on the same day," he joked, describing it as a "niche language" compared to Python. 

But he added: "If you're in that niche, it is superior because the compiler optimizes your code in a way that Python probably never will. On the other hand it is much more limited in other areas and I wouldn't expect that anybody ever is going to write a web server in Julia and get a lot of mileage out of it." Van Rossum is also fan of Rust but he reckons Google-created Go is the most "Pythonic" of all the new languages. 

Editorial standards