State of Scala 2026
Scala remains one of the best-paid niches in software. 38% of Scala developers sit in the top salary bracket, despite only ~2% using it as a primary language. The catch? 43% of teams struggle to hire developers, and 44% see the language declining. It's a small pond, but the fish eat well.

Scala 3.8 shipped in January 2026 with two firsts: a JDK 17 baseline and the standard library compiled in Scala 3. Stick to 3.8.1 or later; 3.8.0 had a runtime regression. Surveyed teams report 92% Scala 3 adoption, though that number skews toward early adopters. The next LTS, Scala 3.9, lands Q2 2026 and will be the stable target for production systems.
Build tooling finally caught up. Mill 1.0 ships with GraalVM native launchers achieving ~100ms startup. sbt 2.0 release candidates show up to 41% faster startup in benchmarks, with GA still pending. On the IDE front, Metals gained Model Context Protocol support, letting AI agents compile code, run tests, and inspect symbols directly. The language server becomes a semantic database, not just a text editor.
Licensing changed. Akka 22.10 reverted to Apache 2.0 after its three-year BSL term expired, giving teams a viable open-source option again. Apache Pekko continued maturing post-incubation, and the community debated whether to port newly-available Akka 2.7 features. For teams choosing between actor frameworks, ZIO and Cats Effect offer alternative concurrency models with active development.
Security demanded attention. CVE-2025-12183 hit lz4-java with an 8.8 CVSS score, cascading through Pekko and Play Framework via transitive dependencies. The upstream lz4-java project has no active maintainers. Migrate to the community fork immediately.
Actions for 2026: Upgrade to Scala 3.8.2+ once stabilized, or wait for Scala 3.9 LTS expected Q2 2026. Migrate from lz4-java to the community fork at.yawk.lz4:lz4-java:1.8.1+. Try sbt 2.0 RCs for build performance gains. As of early February 2026, sbt 2.0 remains in RC phase (2.0.0-RC8), with GA pending.
January 2025
Scala 2.13.16
.tail and .init on empty strings now throw exceptions rather than returning empty strings.Scala 3.6.3
-Yprofile-trace compiler option to trace compile phase timings (JSON traces visualizable with Perfetto).Scala 3.3.5 LTS
-Wall lint option.February 2025
Scala Days 2025 Announced
Scala Native 0.5.7
March 2025
Scala 3.8 JDK 17 Baseline Announced
Scala 3.6.4
sbt 2.0.0-M4 Official
Play Framework 3.0.7 and 2.9.7
"Evolving Scala" Debate
April 2025
IntelliJ Scala Plugin 2025.1
Scala.js 1.19.0
async/await via new js.async and js.await APIs, alongside JSPI support for Wasm.Gradle Joins Scala Center Advisory Board
May 2025
Scala 3.7.0
(name = "Value", age = 30), bridging opaque tuples and verbose case classes. Named tuples support pattern matching, type inference, and conversion to/from regular tuples; the Selectable trait's Fields member allows purely structural types, useful for database-oriented code. Also stabilized @publicInBinary annotation (introduced experimentally in Scala 3.4), rolled out preview features like improved for-comprehensions, and began using new given resolution rules by default. Scala can work with GraalVM Native Image, though even standard-library-only apps often need extra Native Image configuration. VirtusLab took a major role in compiler development; most 3.x releases are now authored by VirtusLab engineers.Scala 3.3.6 LTS
-Yprofile-trace.Metals 1.5.3 with MCP
ZIO HTTP 3.3.0
Apache Spark 4.0
sbt 1.11.0
June 2025
CVE-2025-46548
Scala 3.7.1
RedMonk Q1 2025 Rankings
Spark 4.0 on Databricks
July 2025
Mill 1.0.0
scala command with Scala 3.5.0 in August 2024, and by 2025 is standard for scripting, education, and prototyping.)Lightbend Agentic AI Pivot
Apache Pekko 1.2.0-M2
Stack Overflow 2025 Survey
IntelliJ Scala Plugin 2025.2
August 2025
Scala 3.7.2
-Yimplicit-to-given rewrite flag for migrating implicit definitions to given syntax, and extensions to Capture Calculus features.Scala Days 2025
September 2025
Scala.js 1.20.1
Scala 3.7.3
-Vprint flags. Scala 3.7.4 followed on November 11.CVE-2025-59822
sbt 2.0.0-RC6
Akka 22.10 Reverts to Apache 2.0
October 2025
State of Scala 2025 Report
Scala Native 0.5.9
Scala 3.3.7 LTS
Logback RCE Fix (CVE-2025-11226)
GitHub Octoverse 2025
November 2025
Akka 2.7.0 Open-Sourced
Scala 3.7.4
Spark 4.0 on Amazon EMR Serverless
Scala 2.13.18
sbt 2.0.0-RC7
Scala Days Recordings
Scala Community Growth
CVE-2025-12183
at.yawk.lz4:lz4-java:1.8.1+.December 2025
"Scala 3 Slowed Us Down?" Viral Post
@inline vs inline. Detractors questioned "why migrate at all if 2.13 isn't EOL?", while compiler contributors countered that migration is "pretty smooth" for most codebases. One widely-discussed Medium piece noted: "Scala 3 was released in 2021... It is already 2025, but the Scala community has not fully switched to version 3." The Scala Center responded by doubling down on migration tools (ScalaFix rules and Scala 3's -source:3.0-migration mode).IntelliJ Scala Plugin 2025.3
into modifier, fixes for macros, export aliases, extension methods, and type lambdas, Structural Search and Replace, initial sbt 2.0 and Mill support.Apache Pekko 1.4.0
Apache Spark 4.1.0
Play 3.0.10 and 2.9.10
January 2026
sbt 2.0.0-RC8
Scala 3.8.0 GA
Scala 3.8.1
Scala 2026 Watchlist

1. Scala 3.9 LTS
When: Q2 2026
Context: The next Long-Term Support release succeeding Scala 3.3 LTS. Feature freeze after 3.8 means no new features compared to 3.8; the purpose is a stable, rock-solid base. Some preview features may become stable. May include finalization of "Capture Checking" experiment (Rust-like memory safety). JDK 17 baseline carries forward. Scala 3.3 LTS will receive support for at least one year after 3.9 ships (so likely through ~Q2 2027 if 3.9 lands Q2 2026). Mill should continue iterating toward full Scala 3.8 support. Scala CLI reached the 1.0.0 milestone and is the official implementation of the `scala` command (as of Scala 3.5.0). Scala 3.8 support started in Scala Plugin 2025.3, with further incremental improvements continuing in 2026.
Action: Plan migration to 3.9 LTS for production systems requiring long-term stability. Expect this to be the next LTS line.
2. Scala 3.8 Stabilization
When: Q1 2026
Context: 3.8.0 required a quick 3.8.1 follow-up due to a specialization/Scala 2.13 interop regression. 3.8.1 released January 22, 2026. 3.8.2 scheduled late February for remaining regressions. Key features: standard library compiled with Scala 3, JDK 17 baseline (emits Java 17 bytecode, uses invokedynamic for lambdas), SIP-57 runtimeChecked, SIP-62 Better Fors stabilized, SIP-71 into modifier in preview, ASM 9.9 for JDK 26 support, REPL becomes separate artifact, Flexible Varargs and Strict Equality experimental. Note source incompatibility around context bounds, now using using instead of implicit. Scala 3.3 LTS continues to target JDK 8 bytecode for legacy compatibility.
Action: Cautious teams should wait for 3.8.2. Test your codebase against 3.8.x to identify migration issues early.
3. sbt 2.0 GA
When: TBD (still RC as of Jan 2026)
Context: 2.0.0-RC7 shipped in November 2025; the most recent RC is 2.0.0-RC8 (January 2026). Major improvements: task caching by default, parallel testing by default, Bazel-inspired remote caching for shared build artifacts, ~41% loading/startup-time speedup vs sbt 1.10.2 in PR #7866 benchmarks, Scala 3 build definitions. Many popular plugins already cross-building. sbt 2 uses Scala 3, enabling plugin authors to use Scala 3 features and potentially sparking innovation in sbt plugins. Note: task scoping removal and DSL restructuring caused friction for plugin maintainers. Talk of consolidating Scala CLI and sbt launchers in the long term.
Action: Begin testing sbt 2.0 RCs with your projects. Verify plugin compatibility. Plugin authors should publish 2.0-compatible versions.
4. lz4-java Migration
When: Now
Context: CVE-2025-12183 (8.8 CVSS) and CVE-2025-66566 affected lz4-java, cascading through Apache Pekko and Play Framework via transitive dependencies. Official lz4-java project discontinued.
Action: Migrate to community fork at.yawk.lz4:lz4-java:1.8.1+ immediately. Run dependency audit to identify all lz4-java usages.
5. Apache Pekko Post-Incubation
When: Ongoing through 2026
Context: Pekko graduated from incubation in March 2024. Team discussing Pekko 2.0 plans for 2026. Akka 23.5 shipped May 16, 2023 and, under Akka's 36-month conversion rule, would revert to Apache v2 around May 2026. Lightbend highlighted Pekko introduced breaking changes and "unresolved runtime bugs" (seen by some as FUD). Lightbend offers "Technical Support for Apache Pekko". ZIO and Typelevel ecosystems (with Cats Effect 3.7.0-RC1 enabling native multithreading) offer alternative concurrency models.
Action: Decide whether to stay with Pekko, migrate to ZIO/Cats Effect, or wait for more Akka versions to open-source. Play Framework 3.0 users are already on Pekko.
6. Metals MCP Integration
When: Now
Context: Metals introduced Model Context Protocol (MCP) allowing AI agents to compile code, run tests, inspect symbols, retrieve documentation/usages, and import builds after dependency changes. VirtusLab showcased LLM-assisted developer workflows potentially integrating into Metals. GitHub Copilot officially supports Scala. Separately, GitHub reported in September 2025 that a new Copilot embedding model improved Agent Mode retrieval by 37.6% and nearly doubled embedding throughput. Amazon Q Developer expanded customization support to more languages including Scala on April 30, 2025. JetBrains AI Assistant (EAP) offers chat-based code explanation for Scala, including explaining complex type errors in plain English. Metals worksheet mode and remote development support continue improving. With more Scala devs working in cloud IDEs or GitHub Codespaces, Metals' ability to run in remote containers is increasingly important.
Action: Update to Metals 1.6.4+ and configure MCP for AI-assisted development. Explore LLM4S for type-safe AI integrations.
7. Scala Native WebAssembly
When: 2026
Context: Scala Native 0.5 introduced multithreading based on platform threads, integrated into Cats Effect 3.7.0-RC1 with full multithreading on LLVM. Viable for sidecar processes and serverless functions with competitive performance. Scala.js 1.19.0 delivers Wasm output often faster than JS for compute-heavy code; Scala.js 1.20.1 includes varargs compatibility improvements for Scala 3.8.0+. Question if Scala Native will target WebAssembly directly for lightweight runtime scenarios. Performance discussions dominated by the "Direct Style" vs. "Monadic" debate, fueled by Project Loom. Libraries like Ox (SoftwareMill) leverage virtual threads; anecdotal reports suggest comparable throughput to ZIO for I/O-bound tasks. As one Scala Days talk cheekily titled it: "Scala: Fast is the New Correct". After years focusing on correctness and features, the ecosystem is back to paying serious attention to speed.
Action: For CLI tools and serverless functions where startup time is critical, consider Scala Native (often tens of ms startup in small CLIs, low memory footprint). Track Scala Native WASM developments.
8. Scalar 2026
When: March 26-27, Warsaw
Context: Scalar 2026 scheduled. Scalar 2025 maintained single-track format with Martin Odersky keynoting. Scala Days 2026 location and dates were still pending announcement as of November 26, 2025. Typelevel Summit and Scala eXchange likely to resume fully in-person with potential announcements about new experimental libraries and cross-pollination with other FP languages.
Action: Submit talk proposals for Scalar by deadlines. Watch for Scala Days 2026 announcements.
9. ZIO and Cats Effect Ecosystem
When: Ongoing (no official ZIO 3.0 or CE4 timeline announced)
Context: ZIO adoption jumped from 27% to 32% in 2025. Plans to integrate logging, config, metrics, profiling into ZIO Core. Cats Effect 3.7.0-RC1 brought true multithreading to native Scala executables, making Scala Native viable for CLI and system tools where fast startup and low memory footprint matter. Scala 3.9 targets Q2 2026 as the next Scala LTS, but as of now there is no official release alignment announced for ZIO 3.0 or Cats Effect 4; active lines are ZIO 2.1.x and Cats Effect 3.7.x. Play Framework may start discussing Scala 3-only direction. Spark may discuss Scala 3 migration (currently 2.13 for 4.x line).
Action: Track ZIO 3.0 and CE4 development. For new projects, choose between the "batteries-included" ZIO ecosystem or the more modular Typelevel stack based on team preferences.
10. JDK 25/Valhalla Value Types
When: 2026+
Context: Scala 2.13.17 added early JDK 25 support. JEP 471 support ensures JDK 25+ compatibility continues smoothly. Project Valhalla's value types promise C++ levels of memory efficiency. Project Loom virtual threads already showing results: Akka 25.05 introduced support for configuring dispatchers to run on virtual threads on JVM 21+, Cats Effect Loom integration can match/beat traditional scheduler for IO-heavy workloads. As Loom threads become mainstream, IDEs will need to handle virtual threads in debuggers. Scala 4 is not on the 2026 map; the core team indicated it's years away and would only happen for fundamental changes (new meta-programming framework or significant VM shift). Possible Scala 3.10 SIPs: Multiversal Equality defaults, typeclass coherence, async/await built-in. Scala 3 deprecates XML literals and 3.10 may drop them; the community will use string interpolation via scala-xml library instead. Deprecations in Scala 3.8 removed old -repl/-run scalac options. Scala 2.13: Likely 2.13.19+ with only critical fixes and JDK updates.
Action: Ensure CI/CD pipelines support JDK 17+ (required for Scala 3.8+). Plan JDK 21+ adoption to leverage virtual threads. Track Valhalla progress for future performance gains.








