Nothing lasts forever -- including programming languages. What seems like the future of computing today may be tomorrow's footnote, whether deserved or undeserved.
Python, currently riding high on the list of languages to know, seems like a candidate for near-immortality at this point. But other languages are showing that they share Python's strengths: convenient to program in, decked out with powerful ways to perform math and science work, arrayed with a huge number of convenient third-party libraries.
Here's how four potential challengers to Python shape up against it, and how Python can still keep its edge.
What it is: Apple's language, originally for iOS development, but now open sourceand shaping up to be of interest for server-side development as well.
How it's a challenge: Writing code in Swift is a frictionless experience, more akin to a scripting language (like, say, Python!) than a compiled language like Swift's indirect predecessor, Objective-C. Where Swift has a decided advantage is execution speed -- it's compiled to machine code by way of the LLVM compiler framework, so it supports true multithreading, which Python is still struggling with.
If developer speed is more important than execution speed, another major Python selling point, Swift also has an interpreted "Playground" mode via the Xcode IDE.
How Python still has its lead: For one, Swift's still a new language compared to Python, and so Python has all of the advantages inherent to any incumbent language -- a big captive userbase, plenty of libraries, broad and well-tested platform support. Swift doesn't even yet run on Windows (barring third-party efforts), although that's planned for sometime in the near future. Swift was also originally created to directly complement Apple's toolchain (e.g., Xcode), while Python has fewer dependencies.
What it is: Google's "expressive, concise, clean, and efficient" language, now powering everything from Docker and its associated projects to the InfluxDB database, the Ethereum blockchain system, and Canonical's Snappy package manager.
How it's a challenge: Like Swift, Go compiles to platform-native binaries, so it not only runs far faster than Python for many tasks, it can be deployed cross-platform without needing a Python runtime at the target. Go programs also compile so quickly that it hews closer to an interpreted language rather than a compiled one in terms of its development speed.
How Python still has its lead: While Go isn't as new as Swift -- it debuted to the public in 2009 -- Python still has the larger user base and library assortment. Also, Go's syntax and approach to error handling are alienating to current Python users. Consequently, it's unlikely existing Pythonistas will switch projects to Go, although none of that will stop newcomers from picking up on the language. And as far as runtimes go, utilities like Pyinstaller have made it far easier to bundle Python apps -- not to mention that on most any Linux system, a Python runtime is a standard-issue item.
Sign up for CIO Asia eNewsletters.