The future steps of Scala What to expect from upcoming releases
The “oohs” and the “arghs” of Scala’s forthcoming 2.12 and 2.13 series releases.
Following the introduction of functional programming
to the Java-spere with lambdas in the big 8 drop, it seemed like
pressure was mounting on Scala to provide functions that Java
can’t. But no matter how much
Java 8 wants to “kill Scala”, it’s not going to do it with a
few simple lambdas.
Just in case Java 8’s
lambdas ever catch up with their (far more advanced)
counterparts in Scala (which they probably won’t), the wizards
behind the JVM language are already working on an array of
useful new features for future Scala releases.
The folks at scala-lang.org
claim their goal is to make Scala and its libraries “simpler to
understand, more robust and better performing”. Sounds great –
how’s their mission going?
Cleaning up Scala
Scala plans to purge its collection library to improve
usability. As well as reducing the reliance on inheritance, all
default collections will become immutable, meaning
scala.Seq will be an alias of
Scala will also be cleaning up its syntax in a later
version, with the goal of having less orthogonally composable
features (for example, = instead of procedure syntax; XML string
interpolation instead of XML literals). Future versions will also
strive to iron out any weird behaviour or “puzzlers” in Scala that
can deliver unpredictable results.
As well as making code faster and improving the
compiler performance, the Scala overlords are aiming to introduce
some new modules from the collections library.
Lazy collections through improved views, including
Java 8 streams interop.
Parallel collections with performance improvements
obtained from operation fusion and more efficient parallel
An integrated abstraction to handle validation.
Goodbye Java sixes and sevens
Scala let support of Java 6 run into version 2.11, and will
begin cutting its life support for both Java 6 and 7, starting in
Scala 2.12. Allowing the compatibility of two different Java
versions in future releases would mean more nasty “artfactId name
the Scala masters.
2.11.x series, which first launched this spring, has been
brought up to
2.11.2 bugfix. With initial versions appearing early next year,
the first stable release of 2.12.0 is scheduled to ready by January
Once Scala has successfully phased out Java 6 and 7, warders
Typesafe will get to work on a series of further Java 8 features in
2015, including gems like letting Java 8 call higher-order Scala
methods without a wrapper. Scala also aims to introduce support for
Java 8’s lambdas and streams.
All that ought to be enough to maintain Scala’s reputation as an
satisfying alternative to Java 8.