Werkzeuge und das Scala-Universum
Eine Sprache ist nur so gut wie ihre Werkzeuge. Rund um Scala ist über die Jahre ein reiches Umfeld aus Build-Tools, Testbibliotheken, Frameworks und Plattformen entstanden. Diese Seite gibt einen Überblick und führt zu den Lektionen der sechsten Stufe.
Das Umfeld auf einen Blick
| Bereich | Werkzeuge |
|---|---|
| Installation | Coursier (cs setup) |
| Build | sbt, Scala CLI (scala), Mill, Maven/Gradle |
| Editoren | VS Code mit Metals, IntelliJ IDEA mit Scala-Plugin |
| Formatieren, Prüfen | scalafmt, Scalafix, WartRemover |
| Tests | ScalaTest, MUnit, ScalaCheck, Weaver |
| Nebenläufigkeit | Future, Akka, Apache Pekko, Cats Effect, ZIO |
| Web | Play, http4s, Tapir, ZIO HTTP, Cask |
| Daten | Apache Spark, Apache Flink (Scala-API), Kafka-Clients |
| JSON | play-json, circe, upickle, jsoniter-scala |
| Plattformen | JVM, Scala.js (Browser), Scala Native (LLVM) |
| Oberflächen | scala-swing, ScalaFX, Laminar (Scala.js) |
Bibliotheken finden
Das zentrale Verzeichnis für Scala-Bibliotheken heißt Scaladex (index.scala-lang.org). Dort sehen Sie, für welche Scala-Versionen und Plattformen eine Bibliothek veröffentlicht ist, und können die passende Zeile für sbt oder Scala CLI direkt kopieren. Veröffentlicht werden Bibliotheken über Maven Central, genau wie in der Java-Welt – deshalb können Sie zusätzlich jede Java-Bibliothek einbinden.
Wer die Sprache pflegt
Die Entwicklung von Scala liegt bei der EPFL in Lausanne, beim dort 2016 gegründeten Scala Center und bei Firmen, die Mitarbeitende für Compiler und Werkzeuge abstellen. Die Community organisiert Konferenzen wie die Scala Days und pflegt einen großen Teil der Bibliotheken ehrenamtlich. Dokumentation, Anleitungen und die Sprachreferenz finden Sie gebündelt auf docs.scala-lang.org.
Stufe 6: Werkzeuge und Oberflächen
sbt und scala-cli, Tests, Akka/Pekko, Play sowie Swing und ScalaFX.
- 29Kommandozeile: scala und sbtScala CLI für Kleines, sbt für Projekte mit build.sbt.
- 30Testen mit ScalaTest, MUnit und ScalaCheckScalaTest, MUnit und eigenschaftsbasierte Tests.
- 31Akka und Apache Pekko: AktorenAktoren, Nachrichten, Verhalten und Lizenzfragen.
- 32Play FrameworkRoutes, Controller, Vorlagen und JSON-APIs.
- 33Swing: Oberflächen mit scala-swingFenster, Layouts, Komponenten und Ereignisse.
- 34ScalaFX: Oberflächen mit JavaFXJavaFX in Scala: Szenen, Layouts, Bindings und CSS.
Wie es weitergeht
Mit den sechs Stufen dieses Lehrgangs haben Sie das Fundament. Je nach Ziel bieten sich danach an:
- Backend und APIs: Play oder http4s, dazu eine JSON-Bibliothek und ein Datenbankzugriff.
- Datenverarbeitung: Apache Spark, dessen Programmierschnittstelle sich in Scala besonders natürlich anfühlt.
- Funktionale Programmierung vertiefen: Cats und Cats Effect oder ZIO.
- Im Browser: Scala.js mit Laminar.
Weiterführende Bücher, Kurse und Dokumentationen sind unter Links und Literatur gesammelt.