Stufe 1Einstieg · Lektion 1 von 34
Einleitung: Was ist Scala?
Scala ist eine statisch typisierte Programmiersprache, die objektorientierte und funktionale Programmierung in einer knappen Syntax verbindet. Diese Lektion klärt, woher sie kommt, was sie auszeichnet und was Sie in diesem Lehrgang erwartet.
Eine Sprache, die mitwächst
Der Name ist Programm: Scala steht für scalable language. Gemeint ist, dass dieselbe Sprache für ein Skript mit fünf Zeilen taugt und für ein System, das auf Dutzenden Servern läuft. Möglich wird das, weil Scala wenige, aber sehr allgemeine Bausteine hat – Klassen, Traits, Funktionen, Pattern Matching –, aus denen sich Bibliotheken bauen lassen, die sich wie eingebaute Sprachmittel anfühlen.
Scala ist statisch typisiert: Der Compiler prüft vor dem Start, ob Typen zusammenpassen. Trotzdem schreiben Sie selten Typen hin, denn die Typinferenz leitet sie meist selbst ab. Das Ergebnis sieht oft aus wie eine Skriptsprache, verhält sich aber wie Java oder C#.
val preise = List(19.90, 4.50, 12.00) // Typ: List[Double]
val summe = preise.sum // Typ: Double
println(f"Summe: $summe%.2f Euro")Herkunft und Entwicklung
Scala wurde ab 2001 an der École Polytechnique Fédérale de Lausanne (EPFL) von Martin Odersky entworfen. Odersky hatte zuvor an Java-Generics und am Java-Compiler javac mitgearbeitet. Nach einer internen Version Ende 2003 erschien Scala Anfang 2004 öffentlich für die Java-Plattform.

Einige Wegmarken:
| Jahr | Ereignis |
|---|---|
| 2004 | erste öffentliche Version für die JVM |
| 2010 | Scala 2.8 mit überarbeiteter Collections-Bibliothek |
| 2011 | Gründung der Firma Typesafe (später Lightbend) für kommerzielle Unterstützung |
| 2013 | Scala 2.10 mit Futures und String-Interpolation |
| 2019 | Scala 2.13, erneut neue Collections |
| 2021 | Scala 3.0 erscheint im Mai |
| 2026 | Scala 3.9 ist die aktuelle Version, 3.3 die Langzeitversion (LTS) |
Scala 3 war ein großer Schritt: Syntax mit Einrückung statt Klammern, enum, given/using statt implicit, Union-Typen und ein neues Metaprogrammiermodell. Dieser Lehrgang ist auf Scala 3 ausgerichtet und weist auf Scala-2-Schreibweisen hin, wo sie Ihnen in älterem Code begegnen.
Objektorientiert und funktional zugleich
In Scala ist jeder Wert ein Objekt – auch Zahlen und Funktionen. 1 + 2 ist eigentlich der Methodenaufruf 1.+(2). Gleichzeitig sind Funktionen Werte, die Sie speichern, übergeben und zurückgeben können. Diese Mischung nennt man oft objekt-funktional.
Praktisch heißt das: Sie modellieren Ihre Daten mit Klassen und Traits wie in Java, verarbeiten sie aber bevorzugt mit unveränderlichen Werten und Funktionen wie map, filter und fold. Wie weit Sie in die funktionale Richtung gehen, bestimmen Sie selbst.
Wo Scala läuft
- JVM: der Normalfall. Scala-Code kann jede Java-Bibliothek nutzen und umgekehrt.
- Scala.js: übersetzt Scala nach JavaScript für Browser und Node.js.
- Scala Native: erzeugt über LLVM ausführbare Programme ohne JVM, erstmals 2017 veröffentlicht.
Wer Scala einsetzt
Scala ist besonders dort verbreitet, wo viele Daten oder viele gleichzeitige Anfragen verarbeitet werden. Apache Spark und Apache Kafka sind in Scala geschrieben; Twitter, LinkedIn, The Guardian und die New York Times haben Scala in Produktivsystemen genutzt. Mit Akka bzw. dessen freiem Ableger Apache Pekko und dem Play Framework gibt es ausgereifte Werkzeuge für nebenläufige und webbasierte Anwendungen – beides lernen Sie in Stufe 6 kennen.
So ist der Lehrgang aufgebaut
Die 34 Lektionen sind in sechs Stufen gegliedert: Einstieg, Sprachkern, Objekte und Typen, funktionales Denken, Collections sowie Werkzeuge und Oberflächen. Jede Lektion endet mit einer kleinen Aufgabe samt Lösungsvorschlag. Weiter geht es mit der Installation; danach schreiben Sie Ihr erstes Hello World.