Skip to main content

The Top Programming Languages 2019

Python remains the big kahuna, but specialist languages hold their own
By Stephen Cass

Welcome to IEEE Spectrum’s sixth annual interactive ranking of the top programming languages. This year we’ve done a major overhaul, changing some of the underlying metrics and building a new streamlined interface. But our basic idea and methodology remains the same: combining data from multiple sources to rank the popularity of the programming languages that are used for the type of coding you are interested in.

We take this approach to get around the two fundamental obstacles to all attempts to determine the popularity of programming languages: (1) No one can actually look over the shoulder of every coder around the world as they tap away at the keyboard, and (2) a language that’s a cornerstone of one programming domain might be utterly irrelevant in another. Spectrum gets data for 11 metrics from 8 sources that we think are good proxies for popularity, and we combine the results in an app that lets you filter languages and adjust the weights given to each metric. The upshot is a ranking that’s right for you. (As part of our overhaul, we’ve retired two metrics that we used in previous years because we didn’t think they were yielding good quality data anymore, incorporated data from the IEEE Job Site, and added some new languages to the list, such as Dart.)

Of course, we’ve also got some preset weightings built in that are optimized for job seekers, for example, or folks interested in diving into an open-source side project. Our default weighting is optimized for the typical Spectrum reader, so let’s take a look at what it shows as the top 10 languages of 2019.

Although the changes in our underlying metrics mean that we have to be careful when directly comparing this year’s rankings to last year’s, the general outline of results remains similar, with Python firmly on top. Python’s popularity is driven in no small part by the vast number of specialized libraries available for it, particularly in the domain of artificial intelligence, where the Keras library is a heavyweight among deep-learning developers: Keras provides an interface to the TensorFlow, CNTK, and Theano deep-learning frameworks and tool kits. Deep learning isn’t the only field where Python is having an impact that could not have been anticipated when the language was first released in 1991. The dramatic increase in computing power found in microcontrollers means that embedded versions of Python, such as CircuitPython and MicroPython, are becoming increasingly popular among makers.

Next comes Java, C, and C++, a group whose members have long jostled with one another and with Python for the top spot, although with our adjusted metrics the distance between these contenders has widened, with C++ coming in with a score of 12.5 points below Python. (In any given ranking, the highest-ranked language is assigned a score of 100, and the scores of lower-ranked languages are scaled to that.) The number-crunching language R rounds out the top five. Despite being a much more specialized language than the others, it’s maintained its popularity in recent years due to the world being awash in an ever-growing pile of big data.

Moving further down the top 10, the presence of Matlab—a proprietary language developed by MathWorks and intended for numerical computing—may be a surprise to some, but it simply reflects the language’s prominence in hardware engineering, especially for those interested in running simulations or creating control systems via MathWorks’ graphical Simulink package.

Below the top 10, some items of note include Arduino at No. 11 and HTML/CSS at No. 12. In previous years, some readers have complained that neither should appear on a list of programming languages. In the case of Arduino, the argument is that there is no such language, that “Arduino” is actually the name of the family of hardware platforms on which the language runs, and that this language should be called Wiring (or sometimes C or C++ for historical reasons). In this, we are led by simple pragmatism: When faced with a programming question, the overwhelming majority of Arduino developers search Google using terms like “Arduino Code for…,” rather than any alternative. By choosing the de facto name, we avoid deeply discounting the popularity of programs written for the Arduino and similar microcontrollers.

Pragmatism is also the name of the game when it comes to HTML, with the objection here that it is not a real programming language because it doesn’t have branching or loop constructs. But given the huge popularity of HTML and CSS among developers, and the fact that they are used to instruct billions of computers to do things daily, we feel any academic arguments about Turing completeness and so on are beside the point. A markup language is still a language.

Finally, some older languages are still alive and kicking. In particular, despite being over 60 years old, Fortran still comes in at No. 38, likely due to the enormous legacy power of being the original scientific computing language. The language is still under active development, with the most recent Fortran standard released at the end of 2018, incorporating improved interoperability with C and better support for massive parallel computations.

Comments

Popular posts from this blog

🏛️ ICSSR-NSTC (Taiwan) Joint Call for Research Proposals 2026

  Bilateral Collaborative Research in Social Sciences & Humanities An initiative to strengthen academic cooperation between India and Taiwan by supporting joint, high-quality research projects on new and emerging mutual themes. 📅 Key Timelines & Important Dates Application Opens: June 01, 2026 Application Deadline: August 03, 2026 Completion of Peer-Review: October 14, 2026 Result Announcement: December 2026 Project Commencement: January 01, 2027 Project End Date: December 31, 2028 (2-Year Duration) 💰 Funding & Grant Breakdown Total Supported Projects: Maximum of 5 joint research projects. Maximum Funding Limit: Up to ₹12,00,000 (Twelve Lakh INR) per project. Primary Expense Intent: Mobility of researchers (travel, lodging, and ground hospitality). Travel Split: The visiting side bears international & domestic inter-city air travel. The receiving side bears boarding, local lodging, and ground transportation expenses. 🔬 Core Supported Themes & Disciplines Prop...

Marathi Bhasha Diwas 2025 Competitions

 🎉 Celebrate Marathi Bhasha Diwas with Your Creativity! 🎉 In honor of Marathi Bhasha Diwas on 27th February, the Learning and Information Resource Centre (Library) invites all students and staff to participate in a Poetry and Short Story Competition. ✍️📚 This is your chance to showcase your talent and celebrate the rich heritage of the Marathi language! 🇮🇳✨ Themes: 📝 Poetry: माझी मातृभूमी 📖 Short Story: Theme Cards are available in the library. Submission Guidelines: ✒️ Poetry: Max. 30 lines 📜 Short Story: Max. 1000 words 🗣️ Language: Marathi only ⏰ Deadline: 20th February 2025 🎁 The best entries will be featured in the College Annual Magazine 📖 and shared on our social media platforms 📲. Winners will also receive certificates to celebrate their creativity! 🏆 Submit your entries at the Library or via email at: 📧 sfitlibrary@sfit.ac.in Don’t miss out on this amazing opportunity to be part of this special celebration of Marathi! 🌟💬

e PG Pathshala: A Gateway to all Post Graduate Courses

1.What is e-PGPathshala? e-PGPathshala is a one portal under which High quality, curriculum-based,interactive content in different subjects across all disciplines of social sciences, arts, fine arts & humanities, natural & mathematical sciences, linguistics and languages is being developed.An MHRD, under its National Mission on Education through ICT (NME-ICT), has assigned work to the UGC for development of e-content in 77 subjects at postgraduate level. The content and its quality is the key component of education system. 2.Terminology in e-PGp and MOOCs 3.What is difference between e-PG Pathshala and SWAYAM? e-PG Pathshala provides e-content for post-graduate courses in various subjects in four quadrant. It can be accessed as Open Educational Resource where no teacher support/hand-holding for students is available. SWAYAM is a web platform on which MOOCs shall be hosted. These MOOCs shall have teacher-student groups where MOOC coordinator/tutor/tea...