It can be hard to gauge which programming language to learn — should you go for the most widely used language, the language developers enjoy using, or maybe the highest paid language?
There’s no one right answer, but luckily there are no shortage of top programming languages lists ranking languages according to different criteria.
The latest is the The Top Programming Languages 2019 list from IEEE Spectrum, the magazine for the world’s largest professional organization devoted to engineering and the applied sciences.
The ranking is based on a broader range of sources than is typical for such lists and weighted towards the needs of IEEE members.
As such the list is rather different than many others, which tend to rely more heavily on measures of popularity such as number of GitHub repositories or number of Stack Overflow questions asked.
In the number one spot is Python, which while rapidly rising up other lists and typically a top five language, doesn’t normally sit in pole position.
IEEE Spectrum attributes Python’s success to its explosion of new users in recent years, driven largely by the popularity of the language in the fast-growing field of machine learning, which in turn has been driven by easy-to-use yet capable Python libraries like NumPy, Pandas, and Keras.
The report also highlights the growing use of Python on microcontrollers, thanks to Python spin-offs such as CircuitPython and MicroPython, which are tailored to the constraints of these low-power devices.
The list also highlights a key shortcoming identified by members of the Python community, the language’s lacklustre mobile support. Speaking about Python’s mobile support earlier this year, Barry Warsaw, longtime Python developer and Python Steering Council member, said: “Python, right now, doesn’t have a great story there,” going on to talk about how it was an ambition for iPhone and Android users to download an app and “never even know it was written in Python”.
This and other limitations, such as the difficulty in packaging apps for non-technical users, have prompted some analysts to ask whether Python’s popularity might be peaking.
At number two is Java, enterprise workhorse and until recently Android favorite, unsurprising given its usual strong showing. However, the list also ranks the venerable C and C++ languages more highly than others typically do, possibly a reflection of the number of IEEE Spectrum members involved in the low-level systems programming typically associated with these languages.
SEE: How to build a successful developer career (free PDF) (TechRepublic)
The rising demand for machine-learning engineers and data scientists is once again evident, with statistical analysis language R placing at number five.
Interestingly JavaScript, which typically occupies the top spot in language popularity rankings, is only number six in the list, maybe again a reflection of the list’s engineering focus. In the past, developers have been quick to point out that JavaScript’s widespread use shouldn’t be confused with programmers loving the language, more that it dominates web development so there are large numbers of devs with no choice but to work in it. That said, JavaScript has improved a lot in recent years, and today is used server side in Node.js environments, to control electronics using Node-RED, and on the desktop with Electron.
Further down in the top ten are the usual suspects, Microsoft’s C#, and Apple’s Swift. However, there are further anomalies compared to other lists, with Google’s Go at number 10, despite being singled out for its flagging popularity being by analyst RedMonk earlier in the year .
Another unusual placement is the numerical computing language and environment Matlab at number eight, which IEEE Spectrum puts down to the language’s use in hardware engineering, particularly running simulations.
There’s also some comfort for those worried about their skills becoming obsolete, with Fortran and Cobol sitting at 36th and 44th respectively, despite being some 60 years old. The resilience of these venerable languages seemingly reflects their continued use, with 200 billion lines of COBOL code reportedly still in use today and 90% of Fortune 500 companies still using COBOL code.
The IEEE Spectrum rankings are created by weighting and combining 11 metrics from eight sources — CareerBuilder, Google, GitHub, Hacker News, the IEEE, Reddit, Stack Overflow, and Twitter. You can read more about the methodology here.