Evolving Scala
Loved Language Features & Libraries
- Strong affection for Scala’s expressiveness: pattern matching (including on regexes), algebraic data types, case classes,
copy, and lenses for updating immutable data. - “Immutable-first” design and persistent collections are seen as shaping better program structure than Java’s default mutability.
- Metaprogramming (macros, powerful type system) enabled highly expressive libraries; type-level programming cited as a “killer feature”.
- Collections API, Akka/Akka Streams (and now Pekko), Spark integration, and Twitter’s algebraic libraries are repeatedly praised.
- Many highlight Scala.js, Scala Native, and upcoming WASM support for full‑stack and portable deployments, plus GraalVM/native-image interop.
Where Scala Fits Now
- Several commenters say Scala was their favorite or formative language but no longer find a place for JVM in their current stacks (Python, Rust, JS/TS, Go, etc.).
- Others argue Scala is still widely used for “normal” backends, not just Spark, and provide evidence of a nontrivial job market.
- Scala is often described as an excellent “better Java” and a very strong OO+FP hybrid; some compare its role to Rust vs C.
- Competing ecosystems (modern Java, Kotlin, Go, Rust, Python/NumPy, Julia, Elixir/Gleam) have narrowed Scala’s relative advantage.
Tooling, Compile Times & Stability
- Persistent complaints about slow compilation, though incremental compilation and alternative build tools (Mill, Bleep) are said to help.
- sbt is widely disliked; Mill is praised as faster and simpler, but not a silver bullet.
- IDE support is mixed: IntelliJ’s Scala plugin is considered essential by many; Metals/LSP in VS Code is described as painful. Scala 3 support is improving but not yet flawless.
- Pre‑Scala‑3 instability (2.x fragmentation, library breakages like Cats 2→3) is cited as a major pain. Others note Scala 3.x has been binary‑compatible and coexists well with 2.13.
Language Evolution vs Ecosystem
- Strong divide: some want new features to pause so tooling/ecosystem can catch up; others are eager for advanced work like capture checking/capabilities.
- Scala’s research orientation and academic influence are seen as both a strength and a source of “fatigue” and churn.
Community, Culture & Adoption Concerns
- Perceived “toxic” or overly clever subculture (heavy FP libraries, symbolic operators, implicits) deterred some teams and employers.
- Akka’s relicensing and community “culture wars” are viewed as self‑inflicted hits to mindshare.
- Opinions split on Scala as a hiring “red flag”: some avoid it as niche/academic; others actively seek Scala roles, valuing the talent pool and language power.