Tutorial: 14:15-15:50 (deutsch)
Einführung in Scala 3
Nach 8 Jahren, 28000 Commits und 7400 Pull-Requests war es am 14. Mai 2021 endlich so weit: Scala 3 wurde veröffentlicht. Neben dem neuen Compiler „Dotty“ haben es eine neue Syntax sowie einige Neuerungen an der Sprache in Scala 3 geschafft.
In diesem Tutorial werden die Neuerungen aus Scala 3 vorgestellt und gemeinsam erkundet. Dabei gehen wir unteranderem auf die neue Syntax ein, lernen die “neuen Implicits” kennen und erfreuen uns an den schlanken algebraischen Datentypen-Definitionen. Dabei wird stets im Auge behalten, wo wir aus Scala 2 herkommen und warum die Reise in Scala 3 diesen Weg nahm.
Dieses Tutorial richtet sich an alle, die in Scala 2 zwischen implcits und sealed traits erweitert mit Product with Serializable verloren waren. Für Teilnehmer ohne Scala-2-Erfahrung gibt es zu Beginn in Windeseile einen kleinen Syntax-Crashkurs.
Vorbereitung
Alle Teilnehmenden sollen aktiv mitprogrammieren und werden während des Tutorials auch regelmäßig dazu animiniert - es sollte niemand auf der Strecke bleiben. Damit wir sofort beginnen können, sollten alle eine fertige Umgebung parat haben, um Scala 3 programmieren und Code ausführen zu können.
Das Tutorial wird in VS Code abgehalten, aber natürlich dürfen auch andere Editoren verwendet werden. Auto-Vervollständigung ist allerdings sehr hilfreich. Daher die folgenden Einstiegspunkte, um ein funktionierendes Setup hinzubekommen:
-
Scala 3 installieren
https://docs.scala-lang.org/scala3/getting-started.html
Zusammenfassung:
cs setup
ausführensbt new scala/scala3.g8
ausführen und “hello-world” als Name eingeben-
Zur Überprüfung
sbt run
im erzeugten Verzeichnis eingeben.
-
VS Code installieren
https://code.visualstudio.com/download
Zusammenfassung:
- VS Code herunterladen und installieren
- Die Erweiterung Scala Metals installieren
- Zum Überprüfen “hello-world”-Beispielprojekt über “File -> Open Folder” öffnen
Simon Härer
Simon Härer ist Softwarearchitekt bei der Active Group GmbH. Sein besonderes Interesse gilt der funktionalen Programmierung, Entwicklungsmethodiken und Softwarearchitektur.