Skip to content

Scala 2.13 roadmap #612

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Mar 7, 2017
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions news/_posts/2017-03-06-roadmap-2.13.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
layout: news
post-type: announcement
title: Scala 2.13 roadmap
by: Adriaan Moors
permalink: /news/roadmap-2.13.html
---

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](https://github.com/scala/scala-dev/issues/324) or any of the issues linked below!

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

- [compiler performance](https://github.com/scala/scala-dev/labels/t%3Aperformance)
- [simplifying the collections](https://github.com/scala/scala-dev/labels/t%3Acollections)
- [modularizing the standard library](https://github.com/scala/scala-dev/labels/t%3Amodularize)
- [user-friendliness](https://github.com/scala/scala-dev/labels/t%3Afriendliness)

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](https://github.com/scala/scala/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.

<!-- break -->

In collaboration with the Scala Center, as outlined in [SCP-007: Collaborative redesign and implementation of Scala 2.13's collections library](https://github.com/scalacenter/advisoryboard/blob/master/proposals/007-collections.md) and [Stefan's blog post](http://scala-lang.org/blog/2017/02/28/collections-rework.html), 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](https://github.com/scala/collection-strawman) 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](https://www.scala-lang.org/blog/2016/11/28/spp.html), 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]( https://github.com/scala/scala-dev/issues/323).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great to see the binary compatibility bits mentioned here.


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: the 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 https://github.com/scala/compiler-benchmark for the benchmarks and the issue tracker, or [discuss this theme here](https://github.com/scala/scala-dev/issues/322).

Finally, there are [many more things](https://github.com/scala/scala-dev/issues?q=is%3Aopen+is%3Aissue+milestone%3A2.13+label%3Awishlist) 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! We're always happy to help! In addition to GitHub, you'll find us on [Scala Contributors](http://contributors.scala-lang.org) (forum) and [scala/contributors](https://gitter.im/scala/contributors) (chat).