From First Principles: Why Scala?
I am a Scala programmer & think it's a great language.  Here are some arguments for why not Scala:* Li's libs (os-lib, upickle, utest) have clean public interfaces, but most Scala ecosystem libs are hard to use, see the JSON alternatives for examples: https://www.lihaoyi.com/post/uJsonfastflexibleandintuitiveJS...* The Mill build tool looks a lot better than SBT, but seems like everyone is still using SBT* Scala minor version are binary incompatible, so maintaining Scala projects is a big pain.  Upgrading Spark from Scala 2.11 to Scala 2.12 was a massive undertaking for example.* Scala has tons of language features and lets people do crazy things in the code.  Hard to win technical arguments with Scala geniuses that like using complicated language features.* Scalatest is stil used by most projects and is annoying to use, as described here: https://github.com/lihaoyi/utest#why-utest. The overuse of DSLs in Scala is really annoying.  Too many DSLs is another example of something I consider to be an antipattern, but there is no Scala community consensus on the responsible use of DSLs.I'm optimistic about Scala.  There are some folks that love the language and are continuously improving the ecosystem.  Scala 3 will have to sell a better story about ditching legacy tooling and giving users a better default stack if it wants to compete with modern Go/Rust/Python.