That is not surprising at all, with all the marketing push from JetBrains and Google.
What surprising is that Clojure (with virtually zero marketing) quietly had become more popular than Scala. Well deserved, yet still surprising.
Huh; I actually assumed this had been true for years. The real surprise here is that Clojure overtook Scala at some point, but I get the feeling Scala has been in freefall for a while.
The impression I get is that a lot of people used Scala as better Java prior to Java 8 coming out. Kotlin is a much simpler and cleaner language that fills roughly the same niche, and Java itself has improved significantly over the years. I think that these factors combined explain the freefall we find Scala in right now. Personally, I’m amazed Scala got any traction at all given how poor the tooling has been for years, the slow compile times, and continuous breaking changes in the language.
On the other hand, I suspect that Kotlin has little effect on Clojure market share because it’s a very different language both in terms of syntax and semantics. This is both a blessing and a curse for Clojure. On the one hand, there’s a higher barrier to entry, but on the other people who choose to overcome it are more likely to stick with Clojure because of its unique features.
I think you’re exactly right. Scala’s pitch was “better Java” or “Java made multi-paradigm”. Meanwhile, Kotlin’s pitch was, “Better Java that you can learn in a weekend.” With Kotlin as a better Java that you can learn quickly, and Java8+ as an actual better Java (albeit marginally), the “market position” for Scala is eroded.
Clojure is just a totally different community. Its pitch is: “a modern & pragmatic Lisp with access to the full Java and JVM ecosystem”. Some people use Clojure solely because it’s a modern & pragmatic Lisp. Some people use it as a better Java, especially as a way to side step around static typing and write code that feels closer to the kinds of things you’d write in Python or Ruby. Some people use Clojure to tackle concurrency and immutability, at which it excels. In all of those cases, Clojure programmers aren’t too swayed by the presence of Java 8 or of Kotlin, except perhaps in narrow platform-driven cases (such as Android development).
So it overtook Clojure and Scala (each around 2.5%) to become second (at around 5%), but was this at the expense of Java marketshare, or at the expense of other languages?
If I had to guess I would say at the expense of Java. Android currently only officially supports Java and Kotlin, so I would imagine a fair number of Android developers are making the switch to Kotlin from Java.
I’d say that in absolute terms most Kotlin users came from Java, but in relative terms Kotlin completely crippled Scala adoption.
The amount of new people learning Scala fell dramatically from what I see, and many Scala shops have already changed into Scala-and-Kotlin shops or even Kotlin-and-Scala shops.
I think there is no way of Scala recovering from Kotlin’s winning adoption strategy, even if Oracle deprecated Java tomorrow and force-installed Scala with every JRE/JDK download.
Kotlin’s winning adoption strategy
Kotlin’s winning adoption strategy
What is this? The winning adoption strategy? (Other than get crowned by Google - that’s a pretty winning situation)
Beating Scala at the things it is bad at, not trying to beat it at the things it excels.
Would you say a big part of this is just being closer to Java overall and not introducing nearly as many wildly diverging concepts?
I wouldn’t say so. The language itself simply doesn’t matter. It’s a matter of selling it appropriately, something Jetbrains is really good at, and something Scala never cared about.
Has Scala gone overboard on some things? Sure.
Is it’s transgression so big that – from a technical POV – a second language which shares 80% of the language surface that matters, and goes overboard on a different 15%, should exist?
If not, then why is Kotlin successful?
What Kotlin did was taking a hard look at all the stuff were Scala was terrible¹, and realized that there was a way larger group of people who cared about existing documentation and a working IDE than there will ever people who care about playing Prolog at the type-level.
Jetbrains told the former group the things they wanted to hear (and Scala never bothered) and is wildly successful with that strategy.
¹ There is a reason why people who tried to improve the IDE, the website, the documentation, etc. all quit on extremely bad terms with Scala leadership.
With two different explanations, I decided to dig for the 2018 survey results.
Year Java Clojure Kotlin Groovy Scala Other
2018 90.0 3.0 2.4 2.4 1.8 0.6
2019 86.9 2.9 5.5 1.5 2.6 0.6
It also might be interesting to compare absolute numbers instead of percentages.