03.06.2020

Which Programming Language Pays the Best?

Tobias C. Kaechele
By Tobias C. Kaechele
Money

Photo by Goran Ivos on Unsplash

A Difficult Question

When a friend recently applied for a job as a developer, all of the recruiters asked him: "What salary do you expect?" It's a classic poker game where your future salary is at stake. But he has an ace up his sleeve - he is skilled at a very particular programming language.

And I thought, would it matter?

Let's Talk Numbers

I stumbled across the Stack Overflow Developer Survey 2019.1 It's a massive survey with over 80 questions and nearly 90.000 respondents from all over the world. The authors asked them to list the programming languages they use in a professional context as well as the full annular compensation. But also other significant aspects of a developer's life were of interest, for instance, how many years they were coding, what there current role is, what education they have.

Ready to see your price tag? I would love to show you, but it's not that easy. Because having a decent job as a software engineer in SF is different from living in Germany. The tax system, costs of living, pension plan, or median net income, it all affects your paycheck. And yes, the purchasing power could significantly deviate.

If we want to get a picture of programming languages on a global scale, we have to address the issue of how we can make the compensations comparable. We achieve this by looking at each country separately, getting rid of outliers and standardizing the data (using the median salary and interquartile range). Now, instead of having apples and oranges, we have similar entities.

Median annular compensation by country

And the Winner Is

Throughout all countries, the first place goes to Scala. Concretely, the standardized median annular compensation of all participants who said they were coding professionally with Scala was higher compared to the other languages (precisely 0.35 times the interquartile range above median).

Second and third place goes to Closure and Erlang, respectively. Indeed, none of the major programming languages, like Java or C++, is amongst the top 3, not even amongst the top 10. Is the age of Java over, finally? Java's newest competitor, Kotlin, has already outperformed it in my analysis.

On the lower end, you find PHP and VBA quite isolated from the rest. In particular, traditional web development technologies, like PHP, HTML & CSS, or JavaScript, are associated with lower compensation whereas relatively new languages, like Kotlin, Go, or Webassembly, rank higher.

Standardized median compensation by programming language

The median compensation of the different roles reflects this predicament. Here, you see designers and front-end developers at the bottom, reflecting that especially web workers seem to be paid worse.

On the other hand, the market value of DevOps and Data Science becomes apparent: specialists in those areas go home with a bigger paycheck in general.

As you might expect, having more responsibility and leadership correlates with higher compensation. The group of senior executives, engineering managers, and site reliability engineers stand out considerably from the rest. It was hard to create a big enough chart while including the top two.

Standardized median compensation by role

So, Should I Learn Scala Now?

Before you invest in books about Scala, be aware of making the wrong assumptions.

First of all, the subjects were not representative. If you look at the demographic factors of the participants, you will see that almost all participants were white straight men from the US. I assume, this group resembles more the user base of Stack Overflow than the populous of developers worldwide.

Second, the median annular compensation between programming languages or roles does not significantly deviate from each other due to high variation. Moreover, nobody can cross-check your self-reported salary with benefits, and people tend to lie at those questions, which is generally known as social desirability bias.2 As a result, people exaggerate in general, even in anonymous studies. Hence, I chose not to present exact figures and instead rank them.

Lastly, the participants could give multiple answers to the question about the current role and programming language. Thus, some only checked Java and SQL, whereas others claimed to code in all of them. I hope that in the next survey, the authors will let subjects chose the most appropriate option or at least rank their answers. Actually, due to the high variation of the reported compensation, this could lead to dramatic changes.

Data Science to the Rescue!

No, your salary will not depend on your primary programming language alone. Being a big fan of machine learning, I tried to predict the compensation by using a deep neural net. I used almost all of the available features as input, e.g. years of coding professionally, higher education, size of your organization, ethnicity, to name a few. Still, I could only predict 65% of the variance, and my estimations were off by at least 10k on average. Of course, there is much room for improvement. But let's face it: the data can't fully explain all the differences.

Other possible factors come into mind, like passion, natural gifts, negotiating skills, the specific area where you live in, and of course, luck. Those factors determine your monetary compensation as well - perhaps even more than just the choice of your favourite programming language.

In the case of my friend who was looking for a new job, the results of my evaluation should have given him the means to assess his cards a little bit better. Eventually, he will have to play the game and to know how much he is willing to bet. And he should be aware: you never know who is bluffing.


  1. ^

    Stack Overflow Developer Survey. (2019). Retrieved from https://insights.stackoverflow.com/survey/2019

  2. ^

    Nancarrow, C., & Brace, I. (2000). Saying the "right thing": Coping with social desirability bias in marketing research. Bristol Business School Teaching and Research Review, 3(11), 1-11