Scala Language - What's new in Scala 3?

Classroom Schulung | Deutsch | Anspruch

Schulungsdauer: 3 Tage

Ziele

Scala 2 erschien 2004 und blickt schon auf eine respektable Geschichte zurück. Das finale Release von Scala 3 erscheint nach 8 Jahren Entwicklung im Sommer 2021. Die Sprache wurde von Grund auf überarbeitet und viele der Ecken und Kanten wurden abgeschliffen. Manche obskuren Features aus Scala 2 wurden entfernt, neue (z.B. Enums und Union Types) kamen hinzu.

Das komplette Redesign der Sprache und die vielen Änderungen rechtfertigen einen großen Versionssprung. Scala 3 ist nicht abwärtkompatibel zu Scala 2.
Jedoch wurde die Abwärtskompatibilität (im Source Code) aufrechterhalten, wo immer es möglich war. Wo die Abwärtskompatibilität gebrochen wurde, stehen dem Entwickler Migrationstools zur Verfügung.

Dieser Kurs vermittelt die vielen aus Scala 2 entfernten, verbesserten und die neuen Features von Scala 3. Er problematisiert Fragen der Abwärtskompatibilität zu Scala 2 und zeigt Migrationsstrategien auf.

Zielgruppe

Software-Entwickler/innen mit soliden Kenntnissen der Sprache Scala und der Scala-Standardbibliothek

Voraussetzungen

Kenntnis der Inhalte des Kurses "Scala Language - Basics II" oder gleichwertige Kenntnisse

zusätzlich empfohlen:

Kenntnis der Inhalte des Kurses "Scala Language - Type System" oder gleichwertige Kenntnisse

Agenda

Design Goals

  • Scala 3 Design Goals

Scala 3 Project Setup

  • sbt Setup of a Scala 3 Project

Features

  • Top Level def`s and val`s
  • Indentation / Optional Braces
  • New Control Syntax
  • Main Methods
  • Constructor Invocations without new
  • Traits Parameters
  • Enums and ADTs
  • Intersection Types and Union Types
  • Contextual Abstractions
  • Implicit Conversions
  • Extension Methods
  • Givens (the new Implicits)
  • Type Lambdas
  • Typeclasses
  • Opaque Type Aliases
  • Context Functions
  • Dependent Function Types
  • Tuples are HLists.
  • Match Types
  • Export Clauses
  • Explicit Nulls
  • inline
  • Multiversial Equality
  • Typeclass Derivation
  • Given By-Name Parameters
  • Implicit Resolution
  • Overload Resolution
  • Other Features

Backward Compatibility and Migration

  • Tasty (Typed Abstract Syntax Tree)
  • Using Scala 2 Libraries in Scala 3
  • Using Scala 3 Libraries in Scala 2.13

Ziele

Scala 2 erschien 2004 und blickt schon auf eine respektable Geschichte zurück. Das finale Release von Scala 3 erscheint nach 8 Jahren Entwicklung im Sommer 2021. Die Sprache wurde von Grund auf überarbeitet und viele der Ecken und Kanten wurden abgeschliffen. Manche obskuren Features aus Scala 2 wurden entfernt, neue (z.B. Enums und Union Types) kamen hinzu.

Das komplette Redesign der Sprache und die vielen Änderungen rechtfertigen einen großen Versionssprung. Scala 3 ist nicht abwärtkompatibel zu Scala 2.
Jedoch wurde die Abwärtskompatibilität (im Source Code) aufrechterhalten, wo immer es möglich war. Wo die Abwärtskompatibilität gebrochen wurde, stehen dem Entwickler Migrationstools zur Verfügung.

Dieser Kurs vermittelt die vielen aus Scala 2 entfernten, verbesserten und die neuen Features von Scala 3. Er problematisiert Fragen der Abwärtskompatibilität zu Scala 2 und zeigt Migrationsstrategien auf.

Zielgruppe

Software-Entwickler/innen mit soliden Kenntnissen der Sprache Scala und der Scala-Standardbibliothek

Voraussetzungen

Kenntnis der Inhalte des Kurses "Scala Language - Basics II" oder gleichwertige Kenntnisse

zusätzlich empfohlen:

Kenntnis der Inhalte des Kurses "Scala Language - Type System" oder gleichwertige Kenntnisse

Agenda

Design Goals

  • Scala 3 Design Goals

Scala 3 Project Setup

  • sbt Setup of a Scala 3 Project

Features

  • Top Level def`s and val`s
  • Indentation / Optional Braces
  • New Control Syntax
  • Main Methods
  • Constructor Invocations without new
  • Traits Parameters
  • Enums and ADTs
  • Intersection Types and Union Types
  • Contextual Abstractions
  • Implicit Conversions
  • Extension Methods
  • Givens (the new Implicits)
  • Type Lambdas
  • Typeclasses
  • Opaque Type Aliases
  • Context Functions
  • Dependent Function Types
  • Tuples are HLists.
  • Match Types
  • Export Clauses
  • Explicit Nulls
  • inline
  • Multiversial Equality
  • Typeclass Derivation
  • Given By-Name Parameters
  • Implicit Resolution
  • Overload Resolution
  • Other Features

Backward Compatibility and Migration

  • Tasty (Typed Abstract Syntax Tree)
  • Using Scala 2 Libraries in Scala 3
  • Using Scala 3 Libraries in Scala 2.13

Dieser Lerninhalt wird in folgenden Lernplänen verwendet

Tags

Diese Seite weiterempfehlen