New Relic Now Start training on Intelligent Observability February 25th.
Save your seat.

Programming languages are a fascinating topic: There are thousands of languages in existence today, and new ones emerge all the time. While widely-used, mainstream languages represent a very small percentage of the total, they still give developers an immense range of application-building options.

Every year, we analyze data from a number of sources to understand today’s programming language landscape: Which languages are engineers using most often today? Which ones would they prefer to use, given the choice? Which ones are employers most likely to request when hiring developers?

While some results of this exercise stay fairly consistent from year to year—witness Java’s multi-year reign as the most commonly requested language on job-board postings—other trends better reflect the diverse and dynamic nature of modern programming languages.

Behind the rankings: means and methods

This year, we assessed a variety of reputable, third-party sources, and multiple methodologies and ranking criteria, to assess the relative popularity of today’s top languages. We also consulted with experts on the New Relic team, as well as respected independent voices, to offer some insights into this year’s rankings—thinking about what has changed, what has stayed relatively consistent, and what it all means for today’s professional developers.

As we dig into these trends, keep an important point in mind: The popularity of a language in relative terms (i.e. compared to changes in the popularity of other languages) doesn’t tell you how it’s doing in terms of absolute popularity and growth.

“It is not the case that for one language to ‘win,’ others must ‘lose,’” said Ben Evans, Principal Engineer and Java VM Technologies Architect at New Relic. “The software market is growing rapidly. This means that the pool of available developers is not static but is sharply increasing.”

Programming language popularity: 3 top-line trends

In terms of big-picture trends, a few points stand out here:

1. Developers are largely satisfied with their current choice of languages. The stability at the top of this year’s rankings suggest, once again, that the most widely adopted languages inspire confidence; their effectiveness and use cases are well established, and few businesses have an appetite to change for the sake of change. A recent survey of developers and their managers, conducted by Budapest-based Web and mobile app developer Coding Sans, validated this point of view: 37% of developers surveyed said they aren’t looking to adopt new programming languages during the next 12 months. Last year, by comparison, just 29% said they would stick4 with the languages already within their development toolsets.

2. The most popular languages cater to critical “niche” audiences. Nobody would deny that the three most popular languages in use today—Java, JavaScript, and C—are each capable of meeting a huge range of developer needs. Yet each of these languages also shares the ability to dominate a specific, and highly strategic, target audience.

“Honestly, the most popular programming languages list isn't overly surprising. They all seem to have their own niches in the industry,” noted Andy Schaff, Development Architect at Portent. “Java has the Android native app environment locked down, for example.”

Paul Jansen, founder and CEO of software quality-checking firm TIOBE Software, made the same observation about JavaScript’s role in Web application development, where it’s difficult to imagine a team not using it in some capacity. “Everybody uses some JavaScript somewhere. Most of the time this concerns only a few lines of code, so it is used by a lot of programmers,” he stated.

Finally, while C may be older than most of the developers working with it at this point, it’s another example of a language that has built its popularity on a red-hot industry niche. “C appears to be the most-used language in commercial embedded software,” says Jansen, “and the number of small devices with software is only increasing.”

3. Successful upstarts focus on integration—not on disruption. One of the most successful emerging languages has been Kotlin, which is co-sponsored by Google and well suited for Android development. While both of those advantages certainly can’t hurt Kotlin’s prospects, the language’s long-term prospects may depend more upon a third selling point: its compatibility with existing Java environments.

“The Java runtime environment has become more important than the Java language,” said Chris Hansen, New Relic Director of Product Management. “Developers can choose to code in Java, Scala, Kotlin, or a number of other languages.” These Android and Java connections should help cement Kotlin’s place among the most popular programming languages for many years to come.

Inside the industry rankings

There are plenty of sources that rank the popularity of programming languages, and many of them are quite reputable. But an even better approach is to select four of the best lists—each with its own methodology (and, presumably, its own biases). Our selection includes developer-focused industry analyst firm RedMonk, which bases its tally on a review of GitHub code repositories and Stack Overflow discussions; Stack Overflow and developer-analyst firm SlashData, both of which conduct their own developer surveys; and the TIOBE Programming Community Index, which is updated monthly and based on the number of skilled engineers, courses, and third-party vendors identified worldwide via search-engine queries.

Here’s a comparison of each source’s top-ten language list:

RedMonk Stack Overflow SlashData TIOBE Index 7/19
RedMonkJavaScript Stack Overflow JavaScript SlashDataJavaScript TIOBE Index 7/19Java
RedMonkJava Stack Overflow HTML/CSS SlashDataPython TIOBE Index 7/19C
RedMonkPython Stack Overflow SQL SlashDataJava TIOBE Index 7/19Python
RedMonkPHP Stack Overflow Python SlashDataC# TIOBE Index 7/19C++
RedMonkTie: C++/C# Stack Overflow Java SlashDataC/C++ TIOBE Index 7/19C#
RedMonk#rowspan# Stack Overflow Bash/Shell/Powershell SlashDataPHP TIOBE Index 7/19Visual Basic.NET
RedMonkCSS Stack Overflow C# SlashDataVisual tools TIOBE Index 7/19JavaScript
RedMonkRuby Stack Overflow PHP SlashDataSwift TIOBE Index 7/19PHP
RedMonkC Stack Overflow TypeScript SlashDataRuby TIOBE Index 7/19SQL
RedMonkTypeScript Stack Overflow C++ SlashDataKotlin TIOBE Index 7/19Objective C

Perhaps the most obvious common thread is how JavaScript and Java consistently dominate the top-three positions on these lists—a trend that hasn’t changed much in recent years.

“With the popularity of Node.js, React Native, and browser apps, JavaScript is everywhere,” said Hansen. “It is taught in schools, there are great online resources, and tons of libraries. It is the only language that you can easily use on all tiers of a typical software stack.”

Looking ahead

Interestingly, though, JavaScript’s very popularity is actually boosting a related language. According to Schaff, “TypeScript is slowly taking over from JavaScript,” although it clearly isn’t panic time yet: TypeScript just cracked the RedMonk list for the first time this year, and it recently regained its spot on the Stack Overflow list after dropping off in 2018.

Similarly, Python continues to challenge Java’s dominance. In our 2018 analysis, we mentioned that “Python appears to be having a moment”—and that “moment” is lasting into 2019, judging from Python’s top-four position on every list.

Why is Python’s profile continuing to grow? “Python’s syntax is easy to understand, getting set up is fast, and it is as powerful as any other high-level language like Java,” answered Schaff. “Given a choice between Python and Java, I think Python will win out.”

The analysts at TIOBE agree, writing in their June 2019 index, “If Python can keep this pace, it will probably replace C and Java in 3 to 4 years’ time, thus becoming the most popular programming language of the world.” The reason, the analysts said, is that software engineering is a rapidly growing field, and Python attracts a lot of newcomers.

Other forces are at work, as well. In June, Mozilla Firefox coder Gregory Szorc introduced PyOxidizer, a utility for producing a single-file Python executable. That could help address one of Python’s weaknesses: an inability to package and distribute a self-contained Python program.

Not surprisingly, Java experts such as Ben Evans view these developments with a more critical eye. “Python is a very simple language to teach and get started with,” he said, “so I'm not surprised that more universities are using it as a teaching language. Python makes easy things easy to do, and in the modern computing landscape a lot of what developers want to do is relatively easy.

“On the other hand,” Evans countered, “Python does not scale well in terms of architectural complexity or raw performance, and it loses fairly convincingly" to Java's advantages in areas such as ecosystem and tooling support.

Thinking strategically about your career

Top-tier languages like C and Java may not be going anywhere soon, but there’s evidence that software engineers who know only these languages might be doing their careers a disservice in the long run.

Consider the table below , which compares the results of job site Indeed’s list of languages most in demand by employers right now, career marketplace Hired.com's  look at which programming language skills drew the most interview requests in 2018 (In the top 10, answers ranged from 9 requests for developers who knew Go down to 6.4 for those who knew HTML), and Stack Overflow’s determination of which language skills were associated with the best-paid developer jobs:

[table id=32 /]

The first column looks a lot like the “most used” lists, which points to the field’s essential stability: It makes sense that the largest numbers of job openings are for developers who know the most widely used languages. But comparing that list to the other two offers a peek at the supply-and-demand forces influencing developers’ future job prospects. These future-oriented lists include languages this series has called out in prior years as up-and-comers. Scala, like Kotlin, runs on a JVM. Clojure, Erlang, F#, and Elixir are functional programming languages, and in 2017 we identified such languages as addressing current issues such as concurrency and state management.

Programming languages are a complex choice

Being a software engineer isn’t just about how much money you can earn, of course. For many developers, it’s all about how much they enjoy the work and how productive you ==wcan be—and that can have a lot to do with the languages you use. Maybe that’s why Stack Overflow also asks ask developers which languages they love (“proportionally, more developers want to continue working with these than other languages”) and which ones they dread (“a high percentage of developers who are currently using these technologies express no interest in continuing to do so”). Here are the two lists side-by-side:

[table id=33 /]

It’s tricky to draw firm career conclusions from all this. On the one hand, it’s clearly still beneficial to know the most common, established languages—Java, JavaScript, C, and so on. But it’s probably also a good idea to get familiar with newer languages that are becoming more popular.

But remember, despite the logjam at the top of the most popular programming languages charts, the field is not static and not every software engineer has the same requirements. “Not all languages are used by developers at every career stage,” said Evans. “Scala is an absurdly bad language to try to teach to a beginner, whereas Python and JavaScript are obvious choices.” On the other hand, he added, “even experienced programmers are likely to continue to use Python and JavaScript for some tasks throughout their careers.”