Chapter 22. Scala Tools and Libraries

This chapter fills in some details about the Scala command-line tools, build tool options, IDE and text editor integration, and a look at some popular third-party libraries for Scala. Finally, this chapter explores mixing Java and Scala code.

Libraries and tools change quickly. I will avoid some details that are likely to change over time, focusing instead of suggestions for finding the best options for your needs, with some current examples. For the latest library options, search the Scala Library Index.

Scala 3 Versions

To better support migration of code bases from Scala 2 to 3, Scala 3 introduces a language version construct that allows the user to specify which version should be used, either with a command-line option or an import statement.

Here is the currently defined list of versions, adapted from the documentation on language versions:

Version 3.0

The current default version. Some Scala 2 idioms are deprecated but still supported.

Version 3.0-migration

Identical to 3.0 but with a Scala 2 compatibility mode enabled that helps migration of Scala 2.13 sources over to Scala 3. In particular:

  • Flags some Scala 2 constructs that are disallowed in Scala 3 as migration warnings instead of hard errors.

  • Changes some rules to be more lenient and backward compatible with Scala 2.13.

  • Gives some additional warnings where the semantics have changed between Scala 2.13 and 3.0.

  • Offers code rewrites from Scala 2.13 to 3.0, when used ...

Get Programming Scala, 3rd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.