It may take a while, but over time the popularity of various programming languages does rise and fall significantly. That’s why New Relic takes the time to survey the programming language landscape annually, checking up on enduring favorites and keeping an eye out for emerging trends. We look at a variety of metrics and sources, ranging from job listings to activity on developer forums.
This year, Java remains the programming language skill most in demand among employers—as it was last year—while JavaScript continues to reign atop the lists of languages most commonly used by coders. But changes are rumbling beneath the top spots, as popular frameworks and technological trends like the Internet of Things (IoT) raise the profile of certain specialized languages, while so-called “functional languages” also draw increasing interest.
Microservices tilt the landscape
Another driving force behind these trends is the growing adoption of a microservices architecture. “Eight years ago, monolithic programs were popular,” says Neha Duggal, product manager for New Relic APM. “Now people are moving toward microservices, breaking down the notion of an application into manageable pieces.” This has spurred interest in a lot of different programming languages, including newer languages like Scala, Kotlin, and Apache Groovy that run on a Java Virtual Machine (JVM). Microservices normally use asynchronous communications, Neha says, and the newer languages often handle such communications better than Java itself. The trend is further reinforced by the growing popularity of frameworks like Eclipse Vert.x, which let you use any JVM-based language.
Which programming languages do employers want?
With that in mind, let’s take a closer look at the programming language skills employers are searching for right now. We asked job-search site Indeed to extract the language skills most often appearing in job postings for software development roles from July 2016 through June 2017. We also looked at IEEE Spectrum’s listing of the languages most in demand in the June 2017 listings on the Dice and CareerBuilder job sites:
Java tops both lists, and “Java continues to be the most in-demand programming language, year over year,” notes Doug Gray, Indeed’s senior vice president of engineering. “This is not surprising, as Java is stable and great for scaling, which is especially important with larger companies.”
The lists are remarkably similar, in fact, with only a few entries—.NET, SQL, Node.js, Swift, some C variants—showing up on one and not the other. And even those minor differences may reflect variations in definitions and methodology rather than a real difference in popularity. Node.js does not appear on the IEEE list, for example, perhaps because the JavaScript runtime framework is included under JavaScript. SQL, #6 at Indeed, comes in at #16 on the IEEE list, likely because it’s not represented in that list’s Web or Mobile categories. (The IEEE rankings let you sort by various filters.) And some might argue that JavaScript is more a scripting language than a programming language.
Just as notable, the 2017 lists include eight of the top ten employer-requested languages from last year, indicating that programming job requirements have remained relatively stable. The popularity of Node.js, for example, could also explain JavaScript’s jump from fourth place on the Indeed list last year to second this year. A Forrester report last November found that the platform is being used for many purposes, including IoT innovation, and it’s the most commonly used framework according to this year’s Stack Overflow Developer Survey. Similarly, while .NET jumped into the #3 spot on the Indeed list, room may have been created by the consolidation of C and C++ into a single entry, compared to C#, C++, and C all individually making the top 10 last year.
Just because the top 10 languages are pretty well established, however, doesn’t mean the landscape is frozen. “R and Python are on the rise with the convergence of IoT and Machine Learning,” observes Kellet Atkinson, director of marketing for developer community provider DZone.com. “‘Big Data’ is the top search term on our job board, and Python is in the top five languages being written about.” The IEEE rankings identify Python as the language growing most rapidly, with R coming in at #8.
What programming languages do coders use?
To see what languages developers are most interested in using, let’s look at RedMonk’s Programming Language Rankings, which draw on code-pulls from GitHub combined with discussions on Stack Overflow. In addition, Stack Overflow conducts its own Developer Survey of what developers are actually using:
Look familiar? It makes sense that the languages developers are using match up relatively closely with what employers are looking for. (One exception: TypeScript makes an appearance on the Stack Overflow list. Since it compiles to plain JavaScript, it could be riding on that #1 language’s coattails.)
What programming languages do coders like?
More interesting, perhaps, is what languages developers actually prefer. According to Todd West, a Lead Software Engineer at New Relic, engineers tend to favor the languages they happened to learn first, as well as those that are easy to use and offer both cutting-edge innovation and fast performance. Stack Overflow addresses this issue with an annual survey of the most-loved, most-wanted, and most-dreaded languages:
Apparently, developers not only use JavaScript/TypeScript, Python, and C#, they actually like them. As for Rust, perhaps developers like the systems programming language’s speed, ability to prevent segfaults, and guarantee of thread safety. (We have nothing to say about why 1980-vintage Smalltalk is still so adored.)
What programming languages are on the rise?
As CEO of coding bootcamp Bloc, Roshan Choxi pays attention to what developers are talking about on forums like Hacker News and Reddit’s r/programming, as well as what incoming students show interest in. “The one new trend that stands out from the past year is the increasing influence of functional programming,” he says, referring to languages like Haskell, Erlang, Elixir, Elm, and Clojure. (Some of those choices show up in the lists above.)
“It seems to be an answer to a lot of the common problems developers face today: concurrency, state management, and reliability ... JavaScript may have something to do with this,” explains Roshan. “While it’s not exactly a functional language, it does emphasize functions as first-class citizens, and there are several popular projects that allow you to adopt functional programming features into your JavaScript code. For example, Redux introduced the concept of message passing and TypeScript allows you to plug in static typing, both of which are common in functional languages.”
Polyglot programming still a winner
Another trend we identified last year is still going strong: working with more than one language, as individual polyglot programmers and/or organizations leverage different languages for different purposes. “We are increasingly seeing organizations using more than one language in their ecosystem,” says New Relic’s Neha Duggal. “You might have different teams writing microservices, and each team can pick a language they’re comfortable using for that service.”
DZone’s Kellet Atkinson has noticed the same thing: “With the push towards DevOps, there has been a swell in the idea of the ‘full-stack developer’ who knows multiple languages.” DZone launched a job board a couple of months ago, he adds, and “a lot of the jobs are asking for full-stack developers, and a lot of people in our audience are trending toward considering themselves full-stack developers.”
What does it all mean?
At first glance, it may seem like little has changed in the world of programming languages over the past year. But don’t let the fact that familiar players still dominate the top of the popularity, usage, and desirability charts obscure the fact that newer languages and growing trends are now significantly affecting the choices made by individual programmers and software development teams.
So while proficiency with Java, JavaScript, .NET, Python, various iterations of C, Ruby, PHP, HTML, and CSS remain safe choices, forward-looking developers may also want to familiarize themselves with newer contenders like Haskell, Erlang, Elixir, Elm, and Clojure. Looking ahead, knowing more than one language seems set to be increasingly valuable, as more employers look for developers who are comfortable working across the full stack.
Check out our earlier iterations of this popular annual post:
The views expressed on this blog are those of the author and do not necessarily reflect the views of New Relic. Any solutions offered by the author are environment-specific and not part of the commercial solutions or support offered by New Relic. Please join us exclusively at the Explorers Hub (discuss.newrelic.com) for questions and support related to this blog post. This blog may contain links to content on third-party sites. By providing such links, New Relic does not adopt, guarantee, approve or endorse the information, views or products available on such sites.