Scala 2.13 roadmap

On behalf of the Scala team at Lightbend, I’d like to share our plans with you, and invite you to join us in shaping Scala’s roadmap for 2017. As this is a collective effort, and roadmaps evolve, we’ve decided to use our development issue tracker to organize our thoughts and open up the discussion for your feedback. Below is the overview of what we plan to work on. Please join the discussion on the roadmap theme issue or any of the issues linked below!

The next release of Scala will focus on the following themes:

We intend to shorten the development cycle a little compared to 2.12, with the first 2.13 release candidate slated for the end of Q1 2018. In 2017, we will release quarterly 2.13 milestones so you can get a good sense of the library changes. While Scala 2.11 will come to a halt with 2.11.9 in Q1 2017, we will maintain 2.12 with regular minor releases throughout 2017.

In collaboration with the Scala Center, as outlined in SCP-007: Collaborative redesign and implementation of Scala 2.13’s collections library and Stefan’s blog post, the collections library rework effort has kicked off at https://github.com/scala/collection-strawman. Our goal is to simplifying usage and improve performance, with a smooth migration path from the current collections. Please join and help shape one of the defining parts of Scala!

In tandem, the modularisation of the standard library (begun with Scala 2.11) will continue as part of the Scala Platform process, to foster innovation in our eco-system while maintaining a stable core. The core consists of the collections and the other standard types, such as Option, TupleN, Either and Try. Ultimately, we’d like provide even stronger binary compatibility guarantees for the core, with a vibrant complement of modules that evolve more quickly (offering only backwards compatibility). Discuss this theme.

Scala 2.13 is a library release, which means the language itself won’t see big changes. However, we continue to invest heavily in the implementation, with a single goal: make the compiler faster. The first phase of this work involves benchmarking infrastructure, to guide our progress towards a faster compiler. After that, we will attack slowness on all fronts with all available tools. In addition to YourKit and other JVM profilers, which we have been using intensively over the years, we now have a JMH benchmarking harness for the compiler. We are also investigating lower-level performance (cpu caches, memory access patterns, JIT profiles, etc). We are eager to hear your ideas at the compiler performance theme issue. Please head over to the new compiler-benchmark repo for the benchmarks and the issue tracker, or discuss this theme here.

Finally, there are many more things we’d like to include in 2.13. Let us know if you’d like to work on one of these. We’re always happy to help! In addition to GitHub, you’ll find us on our forums and chat rooms.