We are so fond of our devices. Camera phones enable us to document our most precious moments, and the Internet and its many communication tools keep us connected to friends and family far away. It isn’t often that we think about the programming languages that make our connected world possible, but it’s worth noting that there have been recent shifts in the popularity of certain programming languages that could give us clues about where the digital world is headed, and also remind us of how far we’ve come.

Python ranks #1

IEEE Spectrum released its annual ranking of program languages last month and many were surprised to see Python maintained its top spot. Python, a script-based language, has held the top spot in IEEE Spectrum’s ranking since 2017.

That’s not the surprise. IEEE scores the languages using a weighted scale. Last year, Python had a score of 100, while C++ scored 99.7, Java scored 97.5, and C scored 96.7. This year, however, the landscape of languages changed. Python maintained its top spot with a score of 100, but Java came in second with a score of 96.3 — quite a fall. C came in third with 94.4, C++ slid all the way into fourth place with a score of 87.5, and statistical programming language R took the fifth spot with a score of 81.5. Spots 6-10 were taken by JavaScript, C#, MATLAB, Swift, and Google’s Go, in that order.

20191004_language_NT01P1

The Top Programming Languages 2019(image: IEEE Spectrum)

(It is worth noting IEEE Spectrum’s ranking includes all programming languages used to support hardware and software applications within the context electronics and electrical engineering. IEEE generates its ranking based on 11 metrics from eight sources, including The IEEE, Reddit, Stack Overflow, Twitter, Google, GitHub, CareerBuilder, Hacker News, and GitHub.)

IEEE is the world’s largest organization for engineering and applied science, but it isn’t the only organization to rank programming languages. TIOBE also releases an annual ranking of programming languages specific to software. With hardware out of the picture, TIOBE’s ranking places Java as the most used language, followed by C, Python, C++, C#, Visual Basic .NET, JavaScript, SQL, PHP, and Objective-C.

TIOBE Programming Community Index(image: TIOBE)

Rankings from 10 years ago

In 2010, the TIOBE Programming Index ranked the top 10 languages in order as follows: Java, C, C++, PHP, (Visual) Basic, C#, Python, Objective-C, Perl, and Ruby.

In its very first ranking in 2014, IEEE’s ranking also included C#, PHP, and Ruby.

What changed?

For some languages, such as Ruby and Ruby on Rails, runtime speed and boot speed just aren’t fast enough to support a full-scale commercial product. For other languages, like PHP, poor security was a huge factor that kept companies such as Facebook from continuing to utilize the language.

Python, Java, JavaScript, and C are versatile languages that keep them widely used. Speaking specifically to Python, there are many specialized libraries that support machine learning, deep learning (Theano), AI, and maker libraries for microcontrollers and tiny computers like Adafruit, Arduino, and Raspberry Pi. It also features libraries that easily allow Python code to work with other products and libraries, such as Google’s Tensor Flow and the Microsoft Cognitive Toolkit. Python can be used in many ways and is a fairly easy language to learn, while still offering the kind of security required in today’s world of big data.

Other factors: mobile devices, wearables

There are a few other factors that could have impacted the popularity of programming languages. The inherent security of the language is one factor. Another is the increase in popularity of mobile devices. In 2018, 70% of all Americans owned smartphones and 50% owned tablets. Of those mobile users, 90% of their time spent online was spent using an app, not using the Internet.

This is an important factor when looking at the popularity of programming languages, as some languages are better suited for mobile-app development and use with portable devices such as tablets and smartphones, which brings us to another factor: hardware.

Wearables and devices that support our everyday functions are increasing in popularity, including everything from sleep & activity monitors to smartwatches and posture wearables. As wearables increase in popularity and standard desktop-based software decreases, the popularity of programming languages that can support this demand is bound to increase.

A lot has changed in the last decade, and more changes will occur as we move towards an ever more connected future. For now, the languages that are most versatile and secure will remain the most widely used, but who knows what the future of programming will look like, especially with the continual advancements of electronics engineering (like the memristor). The future is as open-ended as we make it.

Cabe Atwell is an electrical engineer living in the Chicago area.