Buchbesprechung: Scala From Scratch: Exploration

Um die vielfältigen Ausdrucksmöglichkeiten von Scala ausschöpfen zu können, bedarf es eines klaren Verständnisses der Grundlagen – wie sie dieses Buch bietet.

Lesezeit: 2 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen

(Bild: sdecoret / Shutterstock.com)

Von

Daniel Westheide
Scala From Scratch: Exploration

Leanpub, 2019
244 Seiten, ab 14,00 € (PDF, Epub etc.)

Dass er die Programmiersprache Scala beherrscht und ihre Konzepte verständlich vermitteln kann, hat der Autor Daniel Westheide schon in seinem vorherigen E-Book "The Neophyte’s Guide to Scala" bewiesen. Es konzentrierte sich auf Spracheigenschaften, die besonders spezifisch für Scala sind. Für komplette Neulinge war es kaum geeignet, auch wenn der Titel das vermuten ließ. Sein neues Buch "Scala From Scratch: Exploration" hingegen richtet sich explizit an Menschen, die zwar schon erste Programmiererfahrung haben, mit Scala jedoch bisher noch nicht in Berührung gekommen sind.

Nach ein paar einfachen Syntax-Übungen geht es gleich los mit Basisbegriffen der funktionalen Programmierung: Reine Funktionen, referenzielle Transparenz, Rekursion führt Westheide zügig ein. Erklärungen kommen dabei aber nicht zu kurz, sondern vermitteln die Materie angenehm klar und pragmatisch.

Nachdem die objektorientierten Grundlagen wie Klassen, Objekte und Vererbung geklärt sind, folgt das Pattern Matching. Im Zuge seiner Erläuterungen kommt der Autor ganz natürlich auf viele Scala-Eigenheiten zu sprechen. Er serviert dem Leser einigen "syntaktischen Zucker" als Beilage, bevor er sich Scalas Collection-Library widmet, die zahlreiche Methoden bietet.

Scala From Scratch: Exploration

(Bild: Leanpub)

Der Wunsch des Autors, ein besonders leicht zugängliches Buch zu schreiben, und sein Geschick darin, dies umzusetzen, zeigt sich bei der Einführung in das Typsystem. Dem Konzept der "implicits", die vielen Scala-Einsteigern Kopfzerbrechen bereiten, nähert er sich über den Begriff der "extension methods", wie es sie in Kotlin oder C# gibt – eine gute Idee, da so der praktische Nutzen ohne viel theoretisches Vorgeplänkel klar wird. Weitere Kapitel über verzögerte Evaluierung und den Umgang mit optionalen Werten schließen das Buch ab.

Die Erklärungen des Autors sind stets einfach und klar. Da sich das Buch zudem auf die grundlegenden Konzepte beschränkt, bleibt es ausgesprochen kompakt und eignet sich daher vor allem für Leser, die bisher womöglich aufgrund des Rufs der Sprache, etwas kompliziert zu sein Berührungsängste mit Scala hatten.

Einige Details tragen dazu bei, dass das Buch einen frischen, modernen Eindruck hinterlässt. Dazu gehören Kleinigkeiten wie das vorgeschlagene Setup für die Entwicklung mit VS Code und giter8-Templates – aber auch die Betonung der funktionalen Features von Scala, ohne dabei die pragmatische Perspektive zu verlieren oder die Objektorientierung zu verdammen. Westheides Buch empfiehlt sich so auch als gute Einführung in die Grundlagen der funktionalen Programmierung.

Gerade Java-Entwickler ohne Scala-Vorkenntnisse finden einen guten Einstieg in Scala. Die Grundlagen werden zügig und kompakt vermittelt und der Leser in die Lage versetzt, die fortgeschrittenen Features auf eigene Faust zu erkunden.

Wer hingegen einen dicken Wälzer sucht, der sämtliche Aspekte von Scala abdeckt und der als Referenz dienen kann, ist mit "Scala From Scratch: Exploration" nicht gut bedient. Das Buch verzichtet bewusst auf Vollständigkeit. Im Vordergrund steht vielmehr, dem Leser ein Gefühl für die Sprache zu vermitteln.

Es ließe sich daher trefflich darüber streiten, ob unter den Tisch gefallene Konzepte wie ein tieferer Einblick in das Typsystem oder ein Einstieg in die nebenläufige Programmierung nicht doch so wichtig sind, dass sie eine Erwähnung verdient hätten. Westheide hat allerdings auch schon eine Fortsetzung "Scala From Scratch: Understanding" angekündigt, die voraussichtlich im Sommer erscheinen und diese sowie weitere Themen vertiefen soll.

Der verständliche Stil und die klare Darstellung und Einordnung der Sprachfeatures im vorliegenden Band machen Spaß und wecken Neugier auf mehr. Wenn der Autor die Qualität halten kann, dürften sich beide Bände in Kombination sicher als modernes Lehrwerk für Scala etablieren.

Lutz Hühnken
ist Chief Solutions Architect bei der Reederei Hamburg Süd. Aktuell beschäftigt er sich vorrangig mit Events-First Microservices, Domain-Driven Design, Event Storming und Reactive Systems. (map)