Economies of Scala
As a consultancy, we’re always on watch to see what might be the next step forward in the field of software development. I usually find that paying attention to what our developers are playing with provides a good clue.
These days, many of them are toying with Scala, and they are eager to try it out on a project. I have challenged them to come up with compelling business reasons to use Scala on a project, but they have come up short.
I figured I would help them find a good business case for Scala.
For software companies in a tight employment market like the one in Norway, most technical advantages are dwarfed by one concern: Access to good developers. It clearly doesn’t matter what kinds of technical advantages a new language can bring if you can’t hire any developers to work with it. On the flip side, if you can bring great developers to your project, you’re probably in good shape no matter what language you have chosen.
The question, then, is what language should you choose to maximize your access to good programmers?
To answer this, I started to investigate the job market in Norway to see how many jobs that were listed for developers, and what languages they required skills in.
Next, I fielded a survey that asked developers to say what languages they knew, what languages they use on a daily basis, and what language they would prefer for their next project if they could choose freely. In the survey they could choose between 23 languages based on a Programming Language Ranking from Redmonk, published in January 2013. 117 developers answered it. There is some selection bias because of the way the survey was spread, but even so it should be somewhat representative for developers in Norway.
With 88% of respondents knowing it and 44% using it on a daily basis, Java is clearly the biggest language in the survey. From these numbers, it seems obvious that Java would be the language to use to have access to the most developers.
Now, from my experience, developers often choose jobs based on what language they get to work in. Some would like to stay with a programming language they know well, and others would like to keep up with technology and work with something new. That’s why I asked what the respondents would prefer to work with next. In these numbers, a different picture is drawn. Having removed the languages used by less than 5 respondents of the survey to eliminate some randomness, Groovy seems to have the most loyal developers with 83% choosing to stick with it for their next project. On the other end of the scale, only 24% would stay with Java if given the option to choose freely.
Where would all those restless developers like to go next? It turns out that 41% of those who wanted something new would like to try Scala next. That’s way ahead of Clojure and Python on number 2 and 3, with 16% and 11%. Only 5% finds Java that attractive when they don’t already work on it.
Now we need the other side of the equation. What is the competition for developers like? What language skills are employers looking for? The number of listings requiring programming language skills, found by searching at Finn.no, the largest online employment website in Norway, shows that Java comes out ahead, with 224 jobs listed. Towards the other end we find Scala, with a meagre 8 listings and Clojure with 1.
Employers want developers with Java skills, developers want employers who give them Scala projects. There seems to be a mismatch.
To make it visual, let’s create a small experiment with the data I have collected. For the sake of the exercise, say that the 61 respondents that wanted a new language next are all the actively looking applicants, and that the job numbers from Finn.no represent all the jobs they can apply for. Now, you want to recruit a new 5 person team.
By choosing Java in this experiment, for each of the 5 positions you would compete with 100 other companies. On the other hand, with Scala (or Clojure), you would get to choose between 2 candidates for each position.
What would be your choice? You can have a look at the data yourself at GitHub.
There it is, my business case for Scala, all technological arguments aside.
Would you like to participate in a similar programming language survey that goes beyond the borders of Norway? Here’ the survey.