By Jake Widman
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.
According to New Relic Product Marketing Manager Neha Duggal, Java is the most widely implemented New Relic agent as well. However, Duggal sees evidence that Java is maturing and may not be growing as fast as easier-to-use languages such as JavaScript frameworks like Node.JS—which has shown a sharp year-over-year increase—and Go (now supported in New Relic APM). That change is especially prevalent, she says, in newer, smaller organizations likely to prize ease of use and faster time to market. PHP usage is slipping in the enterprise, but remains very popular in small organizations.
Analyst firm RedMonk’s rankings of programming language popularity seem to support this view, slotting JavaScript, Java, and PHP in the first through third 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 site Indeed 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
What employers want is one thing. What developers are actually doing is another. According to RedMonk’s analysis of the number of repositories devoted to a language on GitHub and the amount of discussion on Stack Overflow, JavaScript remains the most popular choice. In fact, the list has changed little since the last rankings in January:
- JavaScript
- Java
- PHP
- Python
- C#
- C++
- Ruby
- CSS
- C
- Objective-C
Unsurprisingly, RedMonk’s list resembles the results of a recent Stack Overflow survey of more than 50,000 developers. JavaScript tops that list, too! Employers may not be asking for JavaScript programmers as much as for folks skilled in other languages, but the people who use it certainly like to talk about it.
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
So what do all these data points add up to? Java remains incredibly popular in the enterprise, and job seekers can’t go wrong learning it. JavaScript skills may not land you a job as quickly, but you’ll be in good company with legions of other programmers. There’s still interest in the various flavors of C as well, and PHP plays a big role in the mid-market. Forward-looking programmers may want to jump on the bandwagon for newer languages like Go, Rust, and Swift, which seem to be making the developers who use them happy.
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.
Interested in Go? New Relic APM support for the Go language is now generally available!
About the Author
Jake Widman is a San Francisco-based freelance technology and science writer, covering everything from big data to quantum physics. He's a regular contributor to Computerworld, CMO.com, and Photoshop User.View posts by Jake Widman.