Scaling up

The future steps of Scala – What to expect from upcoming releases

Coman Hamilton
steps

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 fo
r 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.immutable.Seq.

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.

New functions

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.

  1. Lazy collections through improved views, including
    Java 8 streams interop.

  2. Parallel collections with performance improvements
    obtained from operation fusion and more efficient parallel
    scheduling.

  3. 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
mangling”, say
the Scala masters
.

Scala’s
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
2016.

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.

Author
Coman Hamilton
Before becoming Editor of JAXenter.com (S&S Media Group), Coman completed an M.A. in Cultural Studies and wrote for numerous websites and magazines, as well as several ad agencies. // Want to submit a story? Get me at coman[AT]jaxenter.com or linkedin.com/in/comanhamilton
Comments
comments powered by Disqus