|
|
|
|
|
by minerals29
2321 days ago
|
|
Scala is a nice language but I fear it suffers from internal politics between FP purists and people who simply want things getting done with the former pulling their side of the blanket harder and harder. This alone can alienate a portion of people who are not so much into FP language theory. Besides, a significant amount of Scala tooling is outdated or outright abandoned. Look at all those libraries like Breeze, Saddle, Scalalab. I am not even talking about scalaz vs cats drama. And while all this mess is going on, the Scala team keeps working on a new compiler for Scala 3, sigh. |
|
The interests of all of these parties are different and that's what sometimes causes tensions, but these tensions do also exist in other programming languages that aim at a broad audience. Just look at Rust. Languages that do not show these tensions are languages owned by only one party (most of the time, a company) and that are the only stewards of the project and those controlling the agenda. The good thing about Scala is that it's flexible and it allows you to use it for your use case regardless of whether the language designers want to support your use case or not.
Your claim about Scala tooling being outdated or outright abandoned is not true. There has never been as good tooling as Scala has today, with a lot of innovation happening in the field. The reality is that Scala has really good tooling, on par with that of Kotlin and Java, and sometimes even better. Just look at projects such as Metals, Scalafix, Ammonite, mill, bloop or Scala Steward to get an idea of what I'm talking about.
Also, the Scala team is not working on Scala 3, Martin Odersky's team at EPFL --LAMP-- is. The Scala team at Lightbend is working on keeping improving Scala 2 and making sure tooling is still as good as it gets for when Scala 3 is finally released.
There are lots of people in the Scala community that are not so much into "FP language theory" or category theory and just see its potential as a cross-platform language to prototype and write robust software.