Fanning out dollar bills

The best-paying programming languages

Every day, thousands of dissatisfied working professionals, students, and unemployed or underemployed workers consider programming as a possible career choice. Just look at any "highest-paying jobs" list and you'll find software engineer (or some variation thereof) well represented, often along with a selection of other jobs that require coding abilities.

It's worth noting that programming roles are often the highest-ranked positions on these lists that do not require an advanced degree or some form of licensure. Combine this with the fact there is an ever-increasing number of free learning material and courseware available to aspiring developers, and the appeal is rather clear. For those looking to substantially increase their earning potential without incurring the cost (and opportunity cost) of a medical or legal degree, coding is a rather unique option.

Those who are already working in software development are bombarded with articles advising them to stay aware of trends in languages and tools and alerting them to the importance of keeping their skill sets up to date in order to remain relevant. When a programmer chooses between two job offers at firms utilizing different stacks, at least one contributing factor in that decision is typically how future marketability will be impacted.

How might my future salary vary based on a decision to accept a job focused on 1) developing for Android, 2) doing mostly [insert shiniest current framework here] JavaScript work, or 3) using a proprietary development language? In many of these situations, it is not clear exactly how much future earnings will be impacted, but it's likely that there will be some difference. Although experienced programmers don't tend to think of themselves as a "$LANGUAGE Developer" (because they view language as only one of many tools), the reality is that the market does assign varied values to experience with different languages.

Here is a rundown on the best-paying languages today.

The (big) data

Stack Overflow

Based on sheer volume of data, the Stack Overflow Developer Survey is a natural starting point. The most recent survey, from 2017, polled 64,000 developers worldwide and ranked the highest-paying languages in the United States as:

  1. Scala
  2. Go
  3. Objective-C
  4. CoffeeScript
  5. Perl

Worldwide, the top five languages are Clojure, Rust, Elixir, F#, and Go, in that order.

In 2016, Stack Overflow also included tools and technologies beyond languages in its survey. It's worth mentioning that Apache Spark, Cassandra, and Hadoop all ranked in the top five, and one JavaScript library (React) tied with Go, Clojure, and Perl.

It wouldn't be much of a stretch to interpret the results to this point as a clear win for big data.

When we explore a bit deeper into the 2016 "Top-Paying Tech per Occupation" categories, the results start to skew a bit. For "full-stack" work, C#, Ruby, and JavaScript (and again React) all rank toward the top, with JavaScript tools (React, Node.js, and Angular) claiming the top three spots for front-end work. The dollar figures still lag roughly 20 to 30 percent below Scala, but JavaScript clearly needs to be part of the discussion for top-paying language.

As for the losers on the Stack Overflow survey, PHP is consistently among the bottom performers.

Gooroo

Gooroo analyzes and compiles data on over 500,000 job ads per month, and its results are somewhat consistent with those of Stack Overflow. Its language rankings based on the current data are:

  1. Scala
  2. Clojure
  3. Ruby
  4. Bash
  5. Python

Scala and Clojure again made the top of the list, and Gooroo doesn't include data on F# (which ranked second at Stack Overflow). Bash is the primary outlier here, since we don't generally see Bash programmer as a job title.

If we include other tools and technologies in the discussion, big data and JavaScript are again clear winners, with Spark, Cassandra, Hadoop, Node, and Backbone all making the top ten. One surprise was Go ranking below PHP and barely nosing out Visual Basic, but one would have to suspect this is an anomaly related to how the data was gathered and the difficulty in differentiating between the Go language and the word "go" on a job description.

Indeed.com

Indeed also has a wealth of salary data, with a dedicated page for users to search and compare salaries based on nearly 1 million job ads, users, and employees over a one-year period. Using a subset of the highest-ranking languages from the Gooroo and Stack Overflow data, the top five here are:

  1. Bash
  2. Scala
  3. Java
  4. Go
  5. Ruby

Bash came in more than $15K above Scala for average annual salary, which was a much larger difference than the space between the others in the top five (all between $1K and $2K). Once again, big data mainstays Spark, Cassandra, Kafka, and Hadoop were at the top, with all but Hadoop outperforming every language except Bash. 

Java making an appearance is notable, since it had barely cracked the top ten with Gooroo's data and had only one mention in the Stack survey (a third place in the mathematics programming category). Go and Ruby are also rather consistent with the earlier data.

Caveats to consider

Rating languages by salary potential is to some degree a fool's errand, since a developer's market value may be much more aligned with the cumulative value of the comprehensive skill set, which could consist of a specific and highly desirable combination of languages as well as the person's perceived ability to learn new things. A developer who can demonstrate coding skills and successful projects using a palette of languages that represent a mix of functional, object-oriented, and procedural paradigms may be considered far more valuable than one who has only had significant experience in a single language. 

Some developers will also find this entire exercise rather pointless. Those who write software for a living are paid to solve problems with technology, and the languages are only one minor element in the implementation of a solution. Again, developers (specifically senior developers) are often reluctant to identify themselves with a language tag, even with the realization that jobs and projects using certain technologies are going to pay better than others.

The salary value of any one programming language is based on measures of supply and demand, which can also vary geographically. Certain languages are more prevalent in specific industries, and there are areas of the world where there are high concentrations of firms from one industry, which may cause supply-and-demand irregularities. A C++ developer writing high-frequency trading software in a big city is in a vastly different situation from someone using C++ in embedded systems somewhere in a rural town. The growth in popularity of remote work should continue to level the playing field on this.

Lastly, the source of the salary data is also likely to contribute to the results. If we are relying on surveys from various online communities, a language's popularity among a community could clearly result in skewed results. 

Takeaways on best-paying languages

Based on the data, Scala appears to be nearly unanimously the highest-paying language among those being considered, with the big data ecosystem of tools providing the biggest paycheck as an area of expertise. This makes sense, since anecdotally it seems Scala is a popular choice for those using the listed big data tools (and both Spark and Kafka are written in Scala).  

Clojure and Go each ranked in the top five in two of the three data sets, and this would also coincide with what we may expect. Like Scala, both are relatively young languages, popular among smaller circles but not yet entirely common, and primarily used for industrial-strength tasks within organizations that rely heavily on engineering expertise. This "perfect storm" of characteristics should coincide with high pay.

From there it gets a little murky. Ruby is the only other language to appear in more than one of our lists, ranking third and fifth. Java only appeared in the Indeed data, but it did outperform both Go and Ruby there. 

Both Stack Overflow and Gooroo offered salary data on only a fixed number of languages, whereas Indeed offers salary estimates for any language (as long as it has enough data). Kotlin would have ranked in the top five using the Indeed results, but being that there are so few jobs in Kotlin (a quick search revealed under 100 jobs on Indeed and LinkedIn), it would seem unfair to list it. (However, Kotlin is steadily growing in popularity among individual Android developers).

It's also important to note that a language that is high paying today is not necessarily a good choice for specialization. Investing time to master a "flavor of the month" language may pay short-term dividends, but those earnings may not be sustainable at month's end. 

The worst-paying languages?

Unfortunately, discovering which languages account for the smallest paychecks remains a rather elusive task for a number of reasons. First and foremost, new languages are introduced regularly without gaining much traction while other languages fall out of favor or are no longer supported, which makes it challenging to define what actually qualifies as a relevant language. Our three data sources could not provide any conclusive evidence to make claims with any degree of confidence.

Without significant data, we are somewhat dependent on anecdotal evidence and some assumptions.

The ever-growing supply of developers worldwide doing PHP work on the WordPress platform seems to have driven the rates down significantly for that work, which is likely compounded by freelance auction sites such as Upwork that make it even easier to identify these inexpensive resources. Bootcamp curricula have historically been focused on Ruby, and as bootcamps continue to influence the industry by sending more graduates into the workforce we may (should?) start to see the additional supply impact salaries. 

It's difficult to determine how out-of-favor languages tied to older technologies will fare going forward. While the number of COBOL and Fortran developers should continue to diminish, companies that rely on these technologies may be forced to pay a premium as the supply dries up. 

Topics: App Dev