scalatutorial.de

Werkzeuge und das Scala-Universum

Aktualisiert am 24. September 20266 Lektionen

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

BereichWerkzeuge
InstallationCoursier (cs setup)
Buildsbt, Scala CLI (scala), Mill, Maven/Gradle
EditorenVS Code mit Metals, IntelliJ IDEA mit Scala-Plugin
Formatieren, Prüfenscalafmt, Scalafix, WartRemover
TestsScalaTest, MUnit, ScalaCheck, Weaver
NebenläufigkeitFuture, Akka, Apache Pekko, Cats Effect, ZIO
WebPlay, http4s, Tapir, ZIO HTTP, Cask
DatenApache Spark, Apache Flink (Scala-API), Kafka-Clients
JSONplay-json, circe, upickle, jsoniter-scala
PlattformenJVM, Scala.js (Browser), Scala Native (LLVM)
Oberflächenscala-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.

  1. 29Kommandozeile: scala und sbtScala CLI für Kleines, sbt für Projekte mit build.sbt.
  2. 30Testen mit ScalaTest, MUnit und ScalaCheckScalaTest, MUnit und eigenschaftsbasierte Tests.
  3. 31Akka und Apache Pekko: AktorenAktoren, Nachrichten, Verhalten und Lizenzfragen.
  4. 32Play FrameworkRoutes, Controller, Vorlagen und JSON-APIs.
  5. 33Swing: Oberflächen mit scala-swingFenster, Layouts, Komponenten und Ereignisse.
  6. 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:

Weiterführende Bücher, Kurse und Dokumentationen sind unter Links und Literatur gesammelt.