It would be an understatement to say it’s been a turbulent year since the last time IEEE Spectrum broke out the digital measuring tools to probe the relative popularity of programming languages. Yet one thing remains constant: the dominance of Python.
Since it’s impossible for even the most aggressive spy agency in the world to find out what language every single programmer uses when they sit down at their keyboards—especially the ones tapping away on retro computers or even programmable calculators—we rely on combining 11 metrics from online sources that we think are good proxies for the popularity of 55 languages.
Because different programmers have different interests and needs, our online rankings are interactive, allowing you to weight the metrics as you see fit. Think one measure is way more valuable than the others? Max it out. Disagree with us about the worth of another? Turn it off. We have a number of preset rankings that focus on things such as emerging languages or what jobs employers are looking to fill (big thanks to CareerBuilder for making it possible to query their database this year, now that it’s no longer accessible using a public application programming language).
Our default ranking is weighted toward the interests of an IEEE member, and looking at the top entries, we see that Python has held onto its comfortable lead, with Java and C once again coming in second and third place, respectively. Arduino has seen a big jump, rising from 11th place to seventh. (Purists may argue that Arduino is not a language but rather a hardware platform that is programmed using a derivative of Wiring, which itself is derived from C/C++. But we have always taken a very pragmatic approach to our definition of “programming language,” and the reality is that when people are looking to use an Arduino-compatible microcontroller, they typically search for “Arduino code” or buy books about “Arduino programming,” not “Wiring code” or “C programming.”)
One interpretation of Python’s high ranking is that its metrics are inflated by its increasing use as a teaching language: Students are simply asking and searching for the answers to the same elementary questions over and over. There’s an historical parallel here. In the 1980s, BASIC was very visible—there were books, magazines, and even TV programs devoted to the language. But few professional programmers used it, and when the home computer bubble burst, so did BASIC’s, although some advanced descendants like Microsoft Visual Basic are still relatively popular professionally.
There are two counterarguments, though: The first is that students are people, too! If we pay attention only to what professional and expert coders do, we’re at risk of missing an important part of the picture. The second is that, unlike BASIC, Python is frequently used professionally and in high-profile realms, such as machine learning, thanks to its enormous collection of high quality, specialized libraries.
However, the COVID-19 pandemic has left some traces on the 2020 rankings. For example, if you look at the Twitter metric alone in the interactive, you can see that Cobol is in seventh place. This is likely due to the fact that in April, when we were gathering the Twitter data, Cobol was in the news because unemployment benefit systems in U.S. states were crashing under the load as workers were laid off due to lockdowns. It turns out that many of these systems had not been significantly upgraded since they were created decades ago, and a call went out for Cobol programmers to help shore them up.
There’s always a vibrant conversation about Spectrum’s Top Programming Languages online, so we encourage you to explore the full rankings and leave comments there, particularly if you want to nominate an emerging language for inclusion in next year’s rankings.
This article appears in the August 2020 print issue as “The Top Programming Languages.”