Our annual look at the relative popularity of programming languages reveals that while Java still rules, other options are catching up for significant groups of developers. Just as important, more and more developers are taking a polyglot approach, leveraging multiple languages according to which one best solves a particular problem.
Choosing a Language Ain’t Easy
Software developers know that choosing the best programming language to use — for your project or for your career — can be critically important but often challenging. The criteria can be confusing and the options difficult to determine. Even the questions you need to ask aren’t always clear:
- Which programming languages are hot right now?
- Which languages seem most likely to grow in usage and importance in the future?
- Which languages offer the most employment opportunities?
- Which languages are most powerful for the tasks you need to complete?
- Which languages are easiest to learn and use?
And that’s only the beginning. To help developers address these questions and make informed decisions, in 2014 and 2015 New Relic looked carefully at various measures of programming-language popularity to suss out the most relevant trends. Notably, for this year’s version, we’ve also incorporated learnings from our own usage data.
Java Still Rules, But…
By many measures, Java retains its position atop the language rankings. It’s by far the most sought after programming skill in job ads — especially for enterprise positions.
Perhaps more important, though, New Relic’s usage data shows an increase in number of customers deploying multiple languages. Midmarket customers (those with between 101 and 1,000 employees), in particular, use the largest variety of language combinations, and Ruby is now used in combination with other languages more than it is alone. “This trend may suggest a slow change in businesses adapting more diverse technology stacks into their businesses,” Duggal says.
Which Programming Languages Do Employers Want?
Let’s first look at the skills that tech employers are asking for. We asked job-finding siteIndeed to comb through its 16 million job listings to see how often each of the various programming languages were mentioned in the first five months of 2016. As shown in the chart below, Java showed up in job titles far more often than any other language, with 2,992.19 mentions per million listings.
According to Terence Chiu, vice president of Indeed Prime, “It is not surprising that Java is such a popular programming language. It’s been around for a long time, runs in many computing environments, and has advantages of readability, scalability, and robustness.”
Java is also popular on another major job board, Dice. The top 10 “languages” in its listings, along with their year-over-year change in frequency, are:
- Scala: 50%
- Puppet: 20%
- Python: 13%
- Hadoop: 11%
- Java/J2EE: -4%
- SOAP: -5%
- HTML: -7%
- C, C++, C#: -7%
- UML: -9%
- Perl: -9%
Dice also notes a healthy increase in demand for Python, whose 13% growth lands it in third place, up from eighth last year. C, C++, and C# fall to eighth place from first last year, even though the number of listings fell by only 7%. If Indeed combined the trio into a single listing, it would grab a strong second place, so it seems premature to dismiss them. This list is confusing, however, in that Scala, which compiles to Java bytecode, earns the top slot. Puppet, Hadoop, and SOAP, meanwhile, are not actually programming languages.
What Developers and Programmers Say
Of course, just because a lot of developers are using a language, that doesn’t mean they like it. Stack Overflow tried to get at developers’ preferences by asking what languages they most loved. This list was dominated by newer languages like Mozilla’s Rust, Apple’s Swift, F#, Scala, and Go:
- Rust: 79.1%
- Swift: 72.1%
- F#: 70.7%
- Scala: 69.4%
- Go: 68.7%
- Clojure: 66.7%
- React: 66.0%
- Haskell: 64.7%
- Python: 62.5%
- C#: 62.0%
- Node.js: 59.6%
Translating the Results
But perhaps the real takeaway is that we seem to be moving into a polyglot world where organizations increasingly employ multiple languages. The idea is to take advantage of each language’s special strengths as well as the varied expertise of the programming team.