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.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.
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 scheduling.
An integrated abstraction to handle validation.