Courses
Lunatech’s Moving from Scala 2 to Scala 3
If you’re a Scala 2 application developer who’s looking at getting up-to-speed on Scala 3 or who’s considering a migration of an existing Scala 2 application to Scala 3, Lunatech’s “Moving from Scala 2 to Scala 3” course is a good way to get started.
This course guides you through a migration of a single-module Akka Typed Sudoku solver in a series of about 10 steps. It covers the practical application of the following Scala 3 features:
- New Control Structure syntax
- Indentation Based syntax
- Syntax rewriting by the Scala 3 compiler
- Top Level definitions
- Parameter untupling
- Contextual Abstractions:
- Extension methods new syntax
- Given instances and Using clauses
- Enumerations and Export clauses
- Intersection and Union Types
- Opaque Type Aliases
- Multiversal Equality
Talks
- Scala 3: Python 3 or Easiest Upgrade Ever? by Daniel Spiewak (Weehawken-Lang)
- Taste the difference with Scala 3: Migrating the ecosystem and more by Jamie Thompson (f(by) 2020)
Contributors to this page:
Contents
- Compatibility Reference
- Source Level
- Classpath Level
- Runtime
- Metaprogramming
- Tour of the Migration Tools
- Scala 2 with -Xsource:3
- Scala 3 Migration Mode
- Migration Tutorial
- Prerequisites
- Porting an sbt Project (using sbt-scala3-migrate)
- Porting an sbt Project (by hand)
- Cross-Building a Macro Library
- Mixing Scala 2.13 and Scala 3 Macros
- Scala 3 Syntax Rewriting
- Incompatibility Table
- Syntactic Changes
- Dropped Features
- Contextual Abstractions
- Other Changed Features
- Type Checker
- Type Inference
- Compiler Options
- Compiler Options Lookup Table
- New Compiler Options
- Scaladoc settings compatibility between Scala2 and Scala3
- Compiler Plugins
- Kind Projector Migration
- External Resources