// freier Lehrgang · Deutsch · Scala 3.9
Scala lernen – Stufe für Stufe
Ein Scala-Tutorial auf Deutsch, das bei der Installation beginnt und bei Aktoren, Tests und Oberflächen endet. Jede Lektion erklärt ein Thema mit lauffähigen Beispielen und endet mit einer kleinen Aufgabe.
- 34Lektionen
- 6Stufen
- 0Anmeldungen
Der Lehrplan
Die Lektionen bauen aufeinander auf. Wer Scala neu lernt, geht die Treppe von unten nach oben; wer
nur etwas nachschlagen will, springt direkt in die passende Stufe. Die Nummern in den Adressen
(etwa /topic144) sind feste Kennungen der Themen und ändern sich nicht – verlinken Sie ruhig darauf.
- 1STUFE
Einstieg
Was Scala ist, wie man es installiert und wie die ersten Zeilen im Terminal laufen.
- 2STUFE
Sprachkern
Werte, Ausdrücke, Funktionen und die Schleifen, die in Scala keine sind.
- 3STUFE
Objekte und Typen
Klassen, case classes, Traits, Pattern Matching, Generics und given/using.
- 4STUFE
Funktional denken
Reine Funktionen, Option, Try und Either, Monaden ohne Nebel und Futures.
- 5STUFE
Collections
List, Set, Map, Vector und die veränderlichen Verwandten – mit den wichtigsten Methoden.
- 6STUFE
Werkzeuge und Oberflächen
sbt und scala-cli, Tests, Akka/Pekko, Play sowie Swing und ScalaFX.
Ein erster Blick auf Scala
Zehn Zeilen, die schon viel von dem zeigen, was Scala ausmacht: knappe Datentypen, Funktionen als
Argumente und Ausdrücke statt Zeremonie. Speichern Sie den Code als regal.scala und starten Sie ihn mit
scala run regal.scala.
case class Buch(titel: String, jahr: Int)
@main def regal(): Unit =
val buecher = List(
Buch("Programming in Scala", 2008),
Buch("Scala for the Impatient", 2012),
Buch("Functional Programming in Scala", 2014)
)
val neuere = buecher.filter(_.jahr >= 2012)
for b <- neuere do println(s"${b.titel} (${b.jahr})")- case class legt in einer Zeile einen Datentyp mit Feldern, Gleichheit und lesbarer Ausgabe an – mehr in Klassen und Objekte.
- @main markiert den Einstiegspunkt. Kein
public static void, keine Klasse drumherum. - filter(_.jahr >= 2012) übergibt eine Funktion als Wert. Das Muster begegnet Ihnen in den Collections auf Schritt und Tritt.
- s"…" setzt Werte direkt in Zeichenketten ein, siehe Strings.
Warum Scala – und warum eine Treppe?
Scala steht für scalable language: eine Sprache, die mit ihren Aufgaben mitwächst – vom kleinen Skript bis zum verteilten System. Entworfen wurde sie ab 2001 von Martin Odersky an der EPFL in Lausanne; seit 2004 ist sie öffentlich verfügbar, seit Mai 2021 in der dritten großen Version. Scala verbindet objektorientierte und funktionale Programmierung und läuft auf der Java Virtual Machine, im Browser (Scala.js) und als native Anwendung.
Das italienische Wort scala heißt Treppe. Das passt zu einem Lehrgang, der Stufe für Stufe aufbaut: Jede Lektion setzt nur voraus, was vorher erklärt wurde. Die Übersicht aller Themen der Sprache finden Sie im Lehrplan, die Geschichte der Sprache in der Einleitung.

Scala 2 oder Scala 3?
Viele Anleitungen im Netz stammen noch aus der Zeit von Scala 2. Die wichtigsten Unterschiede auf einen Blick – damit Sie älteren Code einordnen können. Für neue Projekte empfiehlt sich Scala 3; die Langzeitversion 3.3 LTS eignet sich besonders für Bibliotheken.
| Thema | Scala 2 | Scala 3 |
|---|---|---|
| Einrückung | Klammern {} nötig | optionale Klammern, Einrückung reicht |
| Einstiegspunkt | object Main extends App | @main def start(): Unit |
| Implizite Werte | implicit val / implicit def | given, using, extension |
| Aufzählungen | sealed trait + case objects | enum |
| Typen | – | Union-Typen A | B, opaque type |
| Werkzeug | sbt, scala-Befehl der 2er-Distribution | sbt oder scala (Scala CLI) |
Scala im Web
Mit dem Play Framework entstehen Webanwendungen und APIs auf der JVM, mit Scala.js läuft derselbe Code im Browser, und Akka bzw. Apache Pekko halten viele gleichzeitige Verbindungen aus. Technisch ist damit alles da – sichtbar wird eine Anwendung aber erst, wenn Suchmaschinen ihre Seiten sauber erfassen können: serverseitig ausgelieferte Inhalte, sprechende Adressen, korrekte Statuscodes und schnelle Ladezeiten.
Wer eine eigene Play- oder Scala.js-Anwendung öffentlich betreibt und bei Google gefunden werden will, findet Hilfe zu technischem SEO und Sichtbarkeit bei seott.de.
Häufige Fragen
Muss ich Java können, um Scala zu lernen?
Nein. Java-Kenntnisse helfen, weil Scala auf der JVM läuft und Java-Bibliotheken nutzen kann, aber der Lehrgang setzt sie nicht voraus. Wer schon in Python, JavaScript oder C# programmiert, kommt ebenso gut hinein; Grundbegriffe wie Variable, Funktion und Schleife sollten Sie allerdings kennen.
Scala 2 oder Scala 3 – womit soll ich anfangen?
Mit Scala 3. Neue Projekte starten heute mit Scala 3, und alle Beispiele hier sind darauf ausgerichtet. Wo sich Scala 2 deutlich unterscheidet – etwa bei implicit gegenüber given/using –, weisen die Lektionen darauf hin, damit Sie auch älteren Code lesen können.
Wie lange dauert der Lehrgang?
Die Lesezeit aller 34 Lektionen liegt bei einigen Stunden. Realistischer ist, pro Stufe ein bis zwei Abende einzuplanen und die Übungsaufgaben am Ende jeder Lektion wirklich auszuprobieren – beim Tippen lernt man Scala schneller als beim Lesen.
Brauche ich eine IDE?
Für die ersten Stufen genügen ein Texteditor und die Kommandozeile mit dem Befehl scala. Für größere Projekte sind IntelliJ IDEA mit dem Scala-Plugin oder Visual Studio Code mit der Erweiterung Metals verbreitet.
Wofür wird Scala in der Praxis eingesetzt?
Häufig für Backend-Dienste, Datenverarbeitung und verteilte Systeme. Apache Spark und Apache Kafka sind in Scala geschrieben, und Unternehmen wie LinkedIn, The Guardian oder die New York Times haben Scala in Produktivsystemen eingesetzt.
Kostet der Lehrgang etwas?
Nein. scalatutorial.de ist frei zugänglich, ohne Anmeldung, ohne Werbung und ohne Tracking.