Does Python Need to Change?

The Python programming language “is a big hit for machine learning,” read a headline this week at ZDNet, adding “But now it needs to change.”

Python is the top language according to IEEE Spectrum’s electrical engineering audience, yet you can’t run Python in a browser and you can’t easily run it on a smartphone. Plus no one builds games in Python these days. To build browser applications, developers tend to go for JavaScript, Microsoft’s type-safety take on it, TypeScript, Google-made Go, or even old but trusty PHP. On mobile, why would application developers use Python when there’s Java, Java-compatible Kotlin, Apple’s Swift, or Google’s Dart? Python doesn’t even support compilation to the WebAssembly runtime, a web application standard supported by Mozilla, Microsoft, Google, Apple, Intel, Fastly, RedHat and others.

These are just some of the limitations raised by Armin Ronacher, a developer with a long history in Python who 10 years ago created the popular Flask Python microframework to solve problems he had when writing web applications in Python. Austria-based Ronacher is the director of engineering at US startup Sentry — an open-source project and tech company used by engineering and product teams at GitHub, Atlassian, Reddit and others to monitor user app crashes due to glitches on the frontend, backend or in the mobile app itself… Despite Python’s success as a language, Ronacher reckons it’s at risk of losing its appeal as a general-purpose programming language and being relegated to a specific domain, such as Wolfram’s Mathematica, which has also found a niche in data science and machine learning…

Peter Wang, co-founder and CEO of Anaconda, maker of the popular Anaconda Python distribution for data science, cringes at Python’s limitations for building desktop and mobile applications. “It’s an embarrassing admission, but it’s incredibly awkward to use Python to build and distribute any applications that have actual graphical user interfaces,” he tells ZDNet. “On desktops, Python is never the first-class language of the operating system, and it must resort to third-party frameworks like Qt or wxPython.” Packaging and redistribution of Python desktop applications are also really difficult, he says.

4 Likes