The rise and fall of Scala (2016)
10 points by lr0
10 points by lr0
It's from 2016 and Scala is still alive! But it could have been written today. I recently moved to a project at $WORK using Scala 2. For the most part at $WORK I've been doing Kotlin instead. I really like Scala, I think it's one of my favorite languages in tons of ways. Kotlin is a better Java but also a simplified Scala. Maybe if I'm a manager and I need to choose I will choose Kotlin as a more pragmatic choice but Scala is very flexible and interesting to use for hobby projects.
I think Scala could be very attractive if non-JVM versions of it were more important (many people dislike JVM, not my case). I'm talking about Scala Native and Scala.js.
On the other hand Scala suffers from a split ecosystem, not just between Scala 2 and 3, but Akka (or Pekko), ZIO, cats, lihaoyi libs, ...
Kotlin is a better Java but also a simplified Scala.
It was certainly sold that way, but.. I have a hard time agreeing with it. I've never seen anything as bizarre as receiver lambdas in any other language, for example.
My impression overall has been that Scala brought in a few new concepts that let them get rid of a bunch of Java's special cases, while Kotlin added a lot of new special cases without much thought to the interaction between each other. (Null types! Coroutines! Property delegation!)
And then the downright awful IDE situation doesn't help much either. ("Hope you like IDEA...")
(And I say that as someone who spends a decent amount of free time writing Kotlin these days, and hasn't touched Scala in about 5 years.)
I've inherited a Scala webapp (400k lines) at $WORK, and have been on the fence for quite some time about what to do with it. End-to-end type safety does show in very few incidents and low error rate, but the rigidity that it creates makes evolution quite slow. I think the language itself is good, albeit quite complicated and definitely hard to master, but the ecosystem is where the problem is. Many libraries are not or infrequently maintained, and there's an overall tendency to implement software in a purely functional way that ends up complicated and/or inefficient. It's a bit sad, as the language has qualities, but I wonder if its academic lineage is not what made it less successful in the end.
Hmm. I wonder what the X engineers are going to do to port the Twitter backend over to something different.
Anyone know of any similarly knowledgeable articles that trace Scala's history and development from 2016-present?
There's this article from both Odersky and Haoyi: https://www.scala-lang.org/blog/2025/03/24/evolving-scala.html
Given Kotlin maturity and some serious Java improvements in the last few years, it is really hard to justify Scala usage as of today. Add to it significantly smaller pool of developers and...