This is very cool, I've never heard of Scastie, I'll need to take a closer look at that. I created a similar platform for Python (actually submitted to HN earlier today: https://news.ycombinator.com/item?id=49083146)
I also had to move on for professional reasons and haven't kept up for a long time.
I am very surprised that there is not much traction anymore for Scala. I see about 10x more Clojure news or projects on Github so it is not just about the JVM...
Our backend is primarily in Scala and has been for over a decade. My take is that Scala 2 -> 3 was a massive hit to the language's momentum. It came at a time when the language's popularity was waning and it had all the same challenges that other major language version changes tend to have. Migrating's been quite challenging. Tooling, which was already a challenge for the language, got worse because it was split between Scala 2 and 3.
The language was deliberate about providing backwards and forwards compatibility between 2 and 3, but they didn't have a good story for macros. Yes, macros were experimental, but the ecosystem relied on them very heavily. This meant that your 3rd party dependencies likely hadn't migrated to Scala 3. If they had, things got complicated because you had to deal with two macro systems.
After many years the tooling is finally catching up and many 3rd party dependencies are available in Scala 3. That said, it's taken years and years. I think during those years many companies migrated to other languages or put a moratorium on new projects in Scala.
Not only it happened at the worst possible time, but some pain points are entirely self-inflicted, like the braceless syntax hurting tooling and fragmenting the community for very little reason.
But in my opinion Databricks implicitly saying "no thanks" for the foreseeable future did a lot of damage here. Databricks didn't even bother bringing their proprietary runtime to Scala 2.13 until last year. Scala 3 is not entirely out of the question but it's taking forever, and at this point users can seriously ask themselves if Spark will actually stay relevant that long.
My impression is that, rightly or wrongly, it developed a bit of a negative reputation in various ways - too esoteric, slow builds, toxic community, etc. - so people stayed away from it.
And meanwhile, Java the language improved and Kotlin came along as (arguably) the better better Java, so there became less of a need for it.
I'm pretty sure most companies don't care nor are aware about the community drama. Arguably Rust is worse, and it doesn't impact its uptake.
Scala was sold through Akka and Spark, solving pretty complex technical challenges that are less relevant nowadays. In fact if you can avoid Akka and Spark, do.
A lot of companies followed the hype without investing in the developer experience. Tech debt hurts more in Scala than in a bigger, slow moving language. After typical turnover, you get teams inheriting unmaintainable codebases. This leaves a bad impression. It can be avoided, Twitter built world-class SOA with Finagle, as well as a complete layer of libraries on top of Hadoop, at a time where the Scala ecosystem was even rougher.
The fact Databricks doesn't care much about the language also did tremendous damage, forcing the community to cross-build against very outdated versions of Scala.
In short, Scala was never a better Java and adopters who thought otherwise invariably got burned.
Scala's usage is stagnant or declining, but Clojure has always been tiny in comparison. It doesn't even register in most rankings (TIOBE, StackOverflow) which is also confirmed by hard numbers e.g. GitHub statistics.
Kotlin seems to have eaten Scala's lunch, for many organizations in the "JVM-but-not-Java" camp.
Also, non-backwards-compatible language changes fragmented the Scala ecosystem. Combined with the general trend of functional programming hype somewhat dying down in recent years.
I try to keep track of teams moving away from Scala at my company and among my friends and acquaintances, and I know a lot of key people in the community.
Scala to Kotlin stories are extremely rare.
Kotlin is almost non-existent in the data processing world (Spark, Flink, Kafka streams...)
Kotlin's presence in the average CRUD web app or more complex SOA doesn't overlap with Scala that much, as someone who enjoyed the paradigms available in Scala would definitely not move to Spring, and frameworks such as Ktor or http4k are pretty niche. I've seen people move to modern Java, Rust (a lot actually), even Go despite the language being at the other end of the spectrum. But Kotlin, not really.
It was a pet project of mine back in 2013 [0]... revived it (with a bit of help from Claude) and made it updated to Scala 3. Feedback welcome!
[0] https://news.ycombinator.com/item?id=7614130
Very cool, I love Scala and am quite sad that it isn't getting the interest and popularity it should.
This is very cool, I've never heard of Scastie, I'll need to take a closer look at that. I created a similar platform for Python (actually submitted to HN earlier today: https://news.ycombinator.com/item?id=49083146)
I used to be very fond of Scala 10-15 years ago.
I also had to move on for professional reasons and haven't kept up for a long time.
I am very surprised that there is not much traction anymore for Scala. I see about 10x more Clojure news or projects on Github so it is not just about the JVM...
Could someone point to why?
Our backend is primarily in Scala and has been for over a decade. My take is that Scala 2 -> 3 was a massive hit to the language's momentum. It came at a time when the language's popularity was waning and it had all the same challenges that other major language version changes tend to have. Migrating's been quite challenging. Tooling, which was already a challenge for the language, got worse because it was split between Scala 2 and 3.
The language was deliberate about providing backwards and forwards compatibility between 2 and 3, but they didn't have a good story for macros. Yes, macros were experimental, but the ecosystem relied on them very heavily. This meant that your 3rd party dependencies likely hadn't migrated to Scala 3. If they had, things got complicated because you had to deal with two macro systems.
After many years the tooling is finally catching up and many 3rd party dependencies are available in Scala 3. That said, it's taken years and years. I think during those years many companies migrated to other languages or put a moratorium on new projects in Scala.
Not only it happened at the worst possible time, but some pain points are entirely self-inflicted, like the braceless syntax hurting tooling and fragmenting the community for very little reason.
But in my opinion Databricks implicitly saying "no thanks" for the foreseeable future did a lot of damage here. Databricks didn't even bother bringing their proprietary runtime to Scala 2.13 until last year. Scala 3 is not entirely out of the question but it's taking forever, and at this point users can seriously ask themselves if Spark will actually stay relevant that long.
My impression is that, rightly or wrongly, it developed a bit of a negative reputation in various ways - too esoteric, slow builds, toxic community, etc. - so people stayed away from it.
And meanwhile, Java the language improved and Kotlin came along as (arguably) the better better Java, so there became less of a need for it.
I'm pretty sure most companies don't care nor are aware about the community drama. Arguably Rust is worse, and it doesn't impact its uptake.
Scala was sold through Akka and Spark, solving pretty complex technical challenges that are less relevant nowadays. In fact if you can avoid Akka and Spark, do.
A lot of companies followed the hype without investing in the developer experience. Tech debt hurts more in Scala than in a bigger, slow moving language. After typical turnover, you get teams inheriting unmaintainable codebases. This leaves a bad impression. It can be avoided, Twitter built world-class SOA with Finagle, as well as a complete layer of libraries on top of Hadoop, at a time where the Scala ecosystem was even rougher.
The fact Databricks doesn't care much about the language also did tremendous damage, forcing the community to cross-build against very outdated versions of Scala.
In short, Scala was never a better Java and adopters who thought otherwise invariably got burned.
Felt weirdly gate-kept as well.
I wonder how you see 10x more Clojure news.
Scala's usage is stagnant or declining, but Clojure has always been tiny in comparison. It doesn't even register in most rankings (TIOBE, StackOverflow) which is also confirmed by hard numbers e.g. GitHub statistics.
Kotlin seems to have eaten Scala's lunch, for many organizations in the "JVM-but-not-Java" camp.
Also, non-backwards-compatible language changes fragmented the Scala ecosystem. Combined with the general trend of functional programming hype somewhat dying down in recent years.
I try to keep track of teams moving away from Scala at my company and among my friends and acquaintances, and I know a lot of key people in the community.
Scala to Kotlin stories are extremely rare.
Kotlin is almost non-existent in the data processing world (Spark, Flink, Kafka streams...)
Kotlin's presence in the average CRUD web app or more complex SOA doesn't overlap with Scala that much, as someone who enjoyed the paradigms available in Scala would definitely not move to Spring, and frameworks such as Ktor or http4k are pretty niche. I've seen people move to modern Java, Rust (a lot actually), even Go despite the language being at the other end of the spectrum. But Kotlin, not really.
Very nice!
Beautiful. Thank you! =)