Unter den Programmiersprachen abseits des Mainstream erfreut sich die “Scalable Language” Scala großer Beliebtheit. Das Linux-Magazin greift sich zwei Bücher zum Thema heraus, die erfahrenen Entwicklern eine rasche Einführung in die neue Sprache bieten.
Neben Java existieren inzwischen weitere Programmiersprachen, die auf der JVM laufen. Scala zählt dabei zu den bekanntesten. Ihr widmen sich die deutschsprachigen Bücher “Scala” von Oliver Braun (Hanser) und “Programmieren mit Scala” von Dean Wampler und Alex Payne (O’Reilly).
Für Java-Kundige
Die Bücher haben einiges gemeinsam, das Zielpublikum zum Beispiel: Für Einsteiger in die Welt der Programmierung legen beide die Latte sehr hoch. Am einfachsten findet sich der Java-Kundige zurecht, denn beide Titel verweisen immer wieder darauf, was Scala mit Java gemeinsam hat und wo die Unterschiede liegen. Insbesondere Kenntnisse der Objektorientierung helfen.
Scala beherrscht als hybride Sprache allerdings auch das funktionale Paradigma. Und spätestens hier prasselt selbst auf den erfahrenen Java-Entwickler eine Menge neuer Stoff ein. Doch wer sich gerne kompakt und schnell in eine neue Sprache einarbeitet, ist mit beiden Büchern gut bedient.
Beide Titel überfliegen die Installation recht schnell; dies sollte für erfahrene Entwickler und Linuxer auch kein Thema sein. Grundlagen vermitteln die Autoren in knapper Form, wobei den Java-Entwicklern der deutlich kürzere Scala-Code sofort auffällt, lassen sich doch aufgrund der Typinferenz an vielen Stellen Typangaben sowie Semikola, Klammern und mehr einsparen.
Daran schließt sich die Objektorientierung an. Einen Unterschied zu Java machen hier die Traits aus, eine Art Interface mit einer Implementierung, die eine sinnvoll beschränkte Mehrfachvererbung erlaubt. Daneben gibt es im Bereich der Objektorientierung weitere Unterschiede zu Java: Was Java einen primitiven Typ nennt, ist in Scala ebenfalls ein Objekt. Das Schlüsselwort »static« kennt Scala nicht, dafür Begleitobjekte und Methoden, die aussehen wie Operatoren. Reichlich neuer Stoff also.
Nebenläufig
Anschließend führen beide Bücher in die funktionale Programmierung ein: Funktionen liefern ein Ergebnis, aber keine Seiteneffekte. Und in Verbindung mit Aktoren kann der Scala-Programmierer damit sichere Nebenläufigkeit realisieren. Vorbei sind die Zeiten, als der Entwickler sich mit Threads, deren Synchronisation, Race Conditions et cetera herumschlagen musste. Wer aber unbedingt möchte, kann dies auch in Scala tun. Das Scala-Typsystem, XML-Handling und Parser sind weitere Themen, die sich in beiden Titeln finden.
Stilfragen
Wo liegen bei so viel Ähnlichkeit die Unterschiede zwischen den beiden Büchern? Da sind zum einen die Autoren: Wampler und Payne kommen aus der Entwicklung, Oliver Braun als Professor aus der Lehre. Dennoch ist es Braun, im Fließtext kaum förmlicher, der in den Codebeispielen konkreter wird, indem er Kurse, Personen und Vorträge modelliert, während man im O’Reilly-Buch eher “Typ1” und “Typ2” liest.
Das letztgenannte Buch ist aus dem Amerikanischen übersetzt. Es gibt Leser, die behaupten, es sei in solchen Fällen besser, auf das Original zurückzugreifen. Das ist beim vorliegenden Titel jedoch nicht anzuraten, denn im Rahmen der Übersetzung wurde es auf die Scala-Version 2.8 aktualisiert, der sich auch das Werk aus dem Hause Hanser widmet. Beide Bücher verfügen über ein ausführliches Literaturverzeichnis, das O’Reilly-Buch über ein Glossar. Braun spendiert seinem Werk ein paar Seiten zur Webprogrammierung mit Lift sowie Scalatra.
Den fachlichen Anspruch setzen beide Bücher ungefähr gleich hoch an. Und so ist es schwierig, eine Präferenz auszusprechen: Das dickere Buch von Wampler und Payne bietet ein wenig mehr an Informationen. Dafür ist Brauns Werk für weniger Geld erhältlich und kommt damit auf ein etwas günstigeres Preis-Leistungs-Verhältnis. Beide Titel richten sich an den anspruchsvollen Entwickler und sind auf jeden Fall eine Empfehlung wert. (mhu)






