scalatutorial.de

// 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
Die sechs Stufen des Lehrgangs als Treppe1Einstieg5 Lekt.2Sprachkern7 Lekt.3Objekte6 Lekt.4Funktional6 Lekt.5Collections4 Lekt.6Werkzeuge6 Lekt.println("Hallo")Akka, Play, Tests

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.

  1. 1STUFE

    Einstieg

    Was Scala ist, wie man es installiert und wie die ersten Zeilen im Terminal laufen.

    1. 01Einleitung
    2. 02Installation
    3. 03Hello world!
    4. 04REPL und Skripte
    5. 05Konventionen
  2. 2STUFE

    Sprachkern

    Werte, Ausdrücke, Funktionen und die Schleifen, die in Scala keine sind.

    1. 06Variablen und Typen
    2. 07Kontrollstrukturen
    3. 08Funktionen
    4. 09Strings
    5. 10for-Ausdrücke
    6. 11Rekursion
    7. 12Tupel
  3. 3STUFE

    Objekte und Typen

    Klassen, case classes, Traits, Pattern Matching, Generics und given/using.

    1. 13Klassen und Objekte
    2. 14Traits
    3. 15Pattern Matching
    4. 16Generics
    5. 17given und using
    6. 18Exceptions
  4. 4STUFE

    Funktional denken

    Reine Funktionen, Option, Try und Either, Monaden ohne Nebel und Futures.

    1. 19Funktional denken
    2. 20Option
    3. 21Try
    4. 22Either
    5. 23Monade
    6. 24Nebenläufigkeit
  5. 5STUFE

    Collections

    List, Set, Map, Vector und die veränderlichen Verwandten – mit den wichtigsten Methoden.

    1. 25List
    2. 26Set
    3. 27Map
    4. 28Array und Puffer
  6. 6STUFE

    Werkzeuge und Oberflächen

    sbt und scala-cli, Tests, Akka/Pekko, Play sowie Swing und ScalaFX.

    1. 29sbt und CLI
    2. 30Testen
    3. 31Akka und Pekko
    4. 32Play
    5. 33Swing
    6. 34ScalaFX

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.

regal.scalaScala 3
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})")
  1. case class legt in einer Zeile einen Datentyp mit Feldern, Gleichheit und lesbarer Ausgabe an – mehr in Klassen und Objekte.
  2. @main markiert den Einstiegspunkt. Kein public static void, keine Klasse drumherum.
  3. filter(_.jahr >= 2012) übergibt eine Funktion als Wert. Das Muster begegnet Ihnen in den Collections auf Schritt und Tritt.
  4. 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.

Blick durch die Bogenöffnungen der Scala Contarini del Bovolo über die Dächer Venedigs
Aus der Wendeltreppe Scala Contarini del Bovolo in Venedig geht der Blick zum Campanile · Foto: Petra Venezia, CC BY-SA 4.0, Wikimedia Commons

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.

ThemaScala 2Scala 3
EinrückungKlammern {} nötigoptionale Klammern, Einrückung reicht
Einstiegspunktobject Main extends App@main def start(): Unit
Implizite Werteimplicit val / implicit defgiven, using, extension
Aufzählungensealed trait + case objectsenum
Typen–Union-Typen A | B, opaque type
Werkzeugsbt, scala-Befehl der 2er-Distributionsbt 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.