logoalt Hacker News

em-beeyesterday at 4:20 PM3 repliesview on HN

just curious, can you point to more details to what happened with scala3?


Replies

hackingonemptyyesterday at 5:01 PM

The usage stats on GitHub are declining, for example. Devs are choosing Kotlin, Rust, and Go over Scala.

IMHO there are a bunch of reasons

* Scala 3 was a Python 3-esque disruptive event

* Perception as an overly-complex kitchen-sink inclusive language

* Kotlin took up the "better Java" mantle

* Rust became attractive to devs not committed to the JVM

* Go became less sucky

* SBT is disliked and Metals was buggy and unstable (and still slow)

* Suffers from the "we won't be able to find devs" problem where Kotlin, Rust and Go don't

* A bunch of community drama drove some devs away to Rust

I say this as someone using Scala 3 with ZIO effects system and Mill build tool and thinks it is fantastic.

show 3 replies
pjmlpyesterday at 4:57 PM

They introduced a new Python like syntax, and pushed to move away from the curly based syntax.

There were other breaking changes as well.

https://docs.scala-lang.org/scala3/guides/migration/compatib...

This naturally broke all the tooling.

Then you have Metals for VSCode InteliJ plugins, while the Eclipse plugin was dropped.

InteliJ plugin is much further than Metals, however there is the conflict of interests with pushing Kotlin instead.

Meanwhile most Scala shops have pivoted to also give feature parity on modern Java, and Kotlin, thus reducing the interest in using Scala in first place.

However as mentioned, they are doing cool stuff with capabilities at EPFL for Scala 3.

https://virtuslab.com/blog/scala/introduction-to-scala-3-che...

hunterpaynetoday at 2:12 AM

Just to put it in perspective, most Scala programmers rejected Scala3 before it was even written. The Scala team, in their infinite wisdom with a collective 2 years of professional programming under their belt knew better. Nobody switched and Scala2 has been slowly dying with their neglect ever since.

PS The Scala team should have been fixing their type inference engine which lacked some important features and needed a better (Horn clause based) architecture. They did a complete rewrite instead.

show 1 reply