Many factors influence how popular programming languages are at any given time. Developers trust languages that have proven themselves over the long haul. But changes in use cases can lead to developers moving from one language to another; and in some cases, they write brand new languages to correct perceived flaws in existing ones. In any case, a given language’s popularity is usually due to some combination of its overall utility, its familiarity to developers and employers, and its standing in software development’s ever-shifting landscape.

Every year, New Relic takes a close look at various measures of programming language usage. We want to see what’s changed and what hasn’t. We want to know what languages are rising and falling in popularity; and what hot new languages are creating buzz and climbing the charts. Finally, we want to understand how larger software and technology trends can affect the popularity of various programming languages—and vice versa.

Even as modern software practices like cloud computing, microservices, and containers reshape our industry, the established programming languages are holding strong. Languages like Java and Python have sat atop most popularity lists since we starting doing these surveys in 2014, and they’re still at the top in 2018.

Claiming any one language’s dominance over another, though, is complicated. For example, there’s still not 100% agreement for what constitutes a programming language, what makes a given language popular, or how to define a proper methodology for ranking one language over another.

Software trends—old and new

Given all that, two key trends we identified last year are still going strong:

  1. Software organizations continue to embrace a multilingual, “polyglot” approach to programming.
  2. The industry continues to shift toward microservices and containerization.

“Polyglot programming fits in the current environment,” explains New Relic senior product manager Neha Duggal, “because companies want to create small teams that can work individually and let them use the best tools for their job to move fast.” Similarly, she adds, with the rise of continuous delivery and continuous deployment (CI/CD), software teams are able to deploy software more often, which allows them to work more independently. Kubernetes, the wildly popular container orchestration platform, helps support this—one reason it has become a de facto standard in distributed systems.

Another trend promises to shake up the relative popularity of key programming languages. “There’s been a shift in the way Microsoft has been moving,” notes New Relic senior product manager Anil Murty. “It has acquired GitHub and is becoming more open source.” For example, he points to .NET Core, a free and open-source framework that allows developers to run Microsoft languages like C# on Linux systems without having to pay a licensing fee. “That will cause people to give more consideration to those languages,” Anil predicts.

See also: 5 Reasons Why Microsoft’s .NET Core Changes Everything

Employment stats

One common way to measure a language’s popularity is to look at how many employers are asking for it. We looked at the job site Indeed, which analyzed U.S. job postings in the tech software category and identified which programming languages employers requested most frequently in mid 2018. We also checked out HackerRank’s online survey of 39,000 professional and student developers between October 16 and November 1, 2017.

Indeed HackerRank
IndeedJava HackerRankJavaScript
IndeedJavaScript HackerRankJava
IndeedHTML HackerRankPython
IndeedPython HackerRankC++
IndeedC# HackerRankC
IndeedC++ HackerRankC#
IndeedXML HackerRankPHP
IndeedRuby HackerRankRuby
IndeedPHP HackerRankGo
IndeedPerl HackerRankSwift

There aren't many differences at the tops of the two lists, although the order varies a bit. And it’s not clear the differences that do exist are due to much more than procedural noise. These lists also resemble the similar employer-driven lists from last year’s survey. That continuity shouldn’t come as a big surprise. Most businesses are by nature conservative, and even desirable changes tend to happen slowly.

That caution can also be seen in the results of the State of Software Development from web and cross-platform mobile applications developer Coding Sans. Its online survey, conducted in early 2018, asked respondents what new programming languages they were considering to use in the next year. The results didn’t reflect a list of exotic new choices. The venerable Python led the pack at 18%, and although the new(ish) Go placed second at 17%, a whopping 37% of respondents said they weren’t considering any new languages at all!

Of course, usage of even the most popular programing languages isn’t evenly distributed. According to HackerRank, for example, Java remains hot in the financial services sector; C dominates hardware because of its low-level API and widespread availability of compilers; and C# is has a solid footing in governmental organizations.

Python rising

While Java remains the consensus choice for the most popular programming language overall, Python appears to be having a moment. In addition to holding top-four positions in most lists of what employers are looking for, and topping Coding Sans’ list of languages companies are considering, Python may just be about to grab to grab the top spot. At least, The Economist thinks so, reporting in July that Python was fast becoming “the world’s most popular coding language.”

The Economist’s figures, based on data from Tiobe and Google Trends, shows Python rising from a score of 20 to 60 in the past eight years (on a scale where 100 represents the highest recorded annual traffic for any language). The Economist suggests the rise is due to the language’s straightforward syntax and flexibility. Just as important, perhaps, as pointed out by the IEEE, “many modern microcontrollers now have more than enough power to host a Python interpreter,” which opens up new roles for an embedded language. And Anil Murty notes that Python is the second-most-used language in AWS Lambda applications, and will likely benefit from the continued growth of serverless architectures. For a final bit of anecdotal confirmation, Paul Romer, co-winner of the 2018 Nobel Prize in economics, is reportedly a Python convert.

Top of the programming charts

Still, neither Java nor Python top the lists of the most popular programming languages put out by the IEEE, Stack Overflow, or developer-focused analyst firm RedMonk, each of which employs its own particular list-making methodology designed to get at what programming languages developers actually use.

The IEEE’s approach combines multiple metrics to arrive at a ranking “tuned to the interests of a typical IEEE member.” An interactive tool lets you adjust the weighting of different sources, as well as the language’s application, to produce a ranking tuned to your particular interests; in the following table, we show the default ranking. Stack Overflow conducts an annual developer survey, and Redmonk looks at pull requests from the GitHub Archive and discussions on Stack Overflow.

[table id=15 /]

 

JavaScript topped both the RedMonk and Stack Overflow lists last year, too. In fact, the only change in RedMonk’s list is that C and Objective-C are now tied for ninth place; last year, C was ninth and Objective-C tenth. And apart from HTML, CSS, and Bash/Shell pushing out Ruby, TypeScript, and C, the only other change in the Stack Overflow list is that C# and Python swapped places.

3 programming languages to watch

If you want a peek at what languages programmers may be using in the future, pay attention to the hot new languages clawing their way up the lists. That’s why we took a close look at Go, Elixir, and Julia.

By several measures, Go is a language to watch. According to the IEEE’s “trending” preset that weights fast-growing languages, Go (also known as Golang) rose from seventh place in 2017 to fifth place in 2018. Over at Stack Overflow, Go now ranks third among developers for “most wanted” languages and fifth on the list of “most loved” languages.

That growth in popularity can also be seen among many of New Relic’s largest enterprise customers, says Neha Duggal, especially for those with cloud and serverless use cases. One reason, she says, is because Go was developed to address some of the deficiencies of C and C++, such as the lack of multicore and parallel computation support. It’s easier to write networked applications with Go than with those C variations, so it’ll likely grow in usage, Duggal predicts.

Elixir, mainly used for web development, has been gaining popularity for the last five years, according to the online nonprofit coding education site FreeCodeCamp. Career opportunities with Elixir are “typically well-paid”, FreeCodeCamp indicates. Elixir builds on Erlang and runs on the Erlang virtual machine, so while Elixir doesn’t show up on Stack Overflow’s list of languages associated with high salaries, Erlang tops that list, which could be an indicator of why Elixir is trending. New Relic has also seen a steady increase in Elixir adoption by our user base, says Duggal, and we recently announced an open source Elixir agent.

Last but not least, it would be a mistake to sleep on Julia. Developed at MIT to combine “the best features of Ruby, MatLab, C, Python, R, and others,” according to the August announcement of Julia 1.0, Julia is “now ready to change the technical world.” Sometimes seen as a rival to Python, Julia is making “slow but steady progress” in the Redmonk rankings, rising from 52 to 36. One reason could be that Julia programmers can make outsize salaries: Stack Overflow’s survey puts Julia at #22 on the “associated with highest salaries” list, ahead of C, JavaScript, and even Python.

So, what does it all mean?

Put it all together, and what does programming language popularity look like in 2018? Well, Java and Python still lead the pack among full-fledged programming languages, with Python seemingly poised to grab sole possession of first place (if it hasn’t already).

Similarly, polyglot programming and trends like microservices, containers, and orchestration continue to drive programming language choices for organizations, teams, and individual developers. And while they may never top the lists of the most popular programming languages, contenders ranging from Go to Elixir toJulia are leveraging their unique strengths to attract new devotees. While it’s always a good idea stay up to date on the most popular languages, forward-looking developers would do well to gain expertise on one or more of the rising stars before they go totally mainstream.