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.