All the highlights of the newest release

Scala 2.13 brings a long list of important changes and improvements in several areas with the redesign of collections being at the center of this release. Let’s have a look.

The latest release of Scala is here!

Scala 2.13 arrives with an impressive list of changes and improvements across several key areas.

The most significant change in this release is the redesigning of the collections framework which “provides a common, uniform, and all-encompassing framework for collection types.”

Let’s have a look at the most interesting highlights of the 2.13 release.

The highlights

Scala 2.13 brings improvements and changes in four key areas: collections, standard library, language, and compiler.

Collections

As mentioned earlier, the redesigning of the collections framework is central to this new release.

Most ordinary code that used the old collections will continue to work as it is, except a certain amount of occasion including:

Simpler method signatures

Simpler type hierarchy

Immutable scala.Seq

Simplified views that work

New, faster HashMap /Set implementation

/Set implementation New concrete collections

New abstract collection type SeqMap

Standard library

Several additions, changes, as well as deprecations and removals were introduced to the standard library with Scala 2.13. But just to mention a few:

Additions

Integrated Java interop

new: Ordering.Double.TotalOrdering , Ordering.Float.TotalOrdering

, new: . toIntOption , et al

Changes

Library fits in compact1 profile

profile Option extends IterableOnce

Deprecations and removals

String-building using + with a non- String type on the left (aka any2stringadd ) is deprecated

with a non- type on the left (aka ) is deprecated The following modules are no longer included in the distribution: scala-xml, scala-parser-combinators, scala-swing

Assorted deprecated methods and classes throughout the standard library have been removed entirely

Language changes

Although this release is primarily a library release and not a language/compiler release, there are some noteworthy language changes including some new features, experimental features, and deprecations.

Features

Literal types

Partial unification on by default

By-name implicits with recursive dictionaries

Underscores in numeric literals

Macro annotations (experimental)

Deprecations

Procedure syntax deprecated

View bounds deprecated

Head over to the official changelog for the extensive list of new features and improvements.