Paul Graham wrote an essay years ago about the Python Paradox. Explaining how choosing a more exotic language will make it easier for you to find highly skilled and competent developers. This caused a bit of stir in the community but the message here isn’t that other developers are dumb. It’s that Python developers (back then) were attractive to hire because they know Python not because they have to, but because they want to. Developers pursuing such knowledge clearly distinguish themselves from other “run-of-the-mill developers”.
Now lets fast forward to 2011. Scala is in a similar position Python used to be. Not quite mainstream but highly productive under the right use-cases and yes, exotic! With these similarities in mind perhaps it’s a no-brainer be calling Scala subject under the Python Paradox.
Sharing the demographics with early Python, Scala could be considered as uprising and on it’s way of making it mainstream. Also, temptingly it must be considered a moving target that in due time will become so widespread that it no longer can fall under mentioned paradox. But in here lies the essence; I don’t think this will happen. Scala’s paradox isn’t temporary!
Reading David Pollak’s recent article on why Scala is hard lead me thinking that perhaps Scala’s way of making it mainstream, as a Java replacement, isn’t as straightforward as the community used to think. The point David is making is that Scala is hard - for the average developer. You can of course get into the discussion whether this is a good thing or not. This time however, I will refrain from that.
But one thing can be considered positive and it’s the chance of the Scala Paradox becoming permanent. A chance that it always will be a language with a high entry threshold and almost exclusively attracting very skilled developers. Because as David pointed out:
If you know Scala, you’re most likely a very competent developer.
Contrary enough, maybe it is actually in the best of interest of the Scala community to keep things this way. A paradox that’s not based on a moving target could be of use for both employers and employees looking for a job.
The current adoption and use of Scala is very much where it can (and perhaps will) stay. Scala is not a language desperately looking for more followers. It has become widespread and stable enough to be accepted and trusted by many organizations. In spirit of the name, trying to uphold the Scala Paradox is perhaps the right thing for the community to do.