Stefan Zörner fragte während einer Podiumsdiskussion zu aktuellen Trends in Java im Rahmen der letzten "Berlin Expert Days", ob ein Entwickler über 40 Jahren mit Blick auf die vermeintliche Komplexität schon zu alt sei für Scala. Hier hatte er meine (Ü40) erste, schon vor einigen Jahren gebildete Meinung bezüglich Scala in wenigen Worten zusammen gefasst.
Umso interessanter erschien mir daher die aktuelle Publikation von Heiko Seeberger, der bereits einen sehr großen Beitrag zur Verbreitung von Scala in Deutschland geleistet hat, und seinem Co-Autor Roman Roelofsen. Diese Buch richtet sich in erster Linie an Scala-Interessierte mit Java-Kenntnissen, die gebündelt und schnell die wesentlichen Konstrukte und Eigenschaften dieser Sprache praxisnah erlernen möchten.
Im ersten Kapitel widmen sich die Autoren der Fragestellung, worum es sich bei Scala handelt und warum der Einsatz von Scala lohnenswert ist. Neben einer Abgrenzung zu Java findet auch eine Abgrenzung zu den anderen JVM-Sprachen Groovy und JRuby statt. Dieses Kapitel fällt kurz und bündig aus, so dass der Leser in den folgenden zwei Kapiteln schnell in die Praxis eingeführt wird, indem der Aufbau einer einfachen, den Anforderungen der Buch-Beispiele genügenden Entwicklungsumgebung beschrieben wird. Als IDE geben die Autoren IntelliJ IDEA gegenüber Eclipse den Vorzug – angesichts der Probleme des Scala 2.8 Plug-ins für Eclipse eine Empfehlung, die befolgt werden sollte. (Die aktuelle Beta-Version des Plug-ins für Eclipse [1] zeichnet sich durch wesentliche Verbesserungen aus, so dass tatsächlich auch ein Einsatz möglich ist und die Beispiele unter Eclipse nachvollzogen werden könnten.
Die nächsten Schritte führen den Leser in die Benutzung der REPL („Read-Evaluate-Print Loop“) und die ersten Sprachkonstrukte wie val, var und Funktionen ein. Auch dieses Kapitel ist erfreulicherweise recht kurz gehalten, und die weiteren Sprachelemente werden dem Leser anhand eines durchgehenden Projektes („ScalaTrain“) Schritt für Schritt näher gebracht.
Hierbei werden alle wesentlich wichtigen Konstrukte anhand des Beispiel-Projektes näher erläutert. Einiges bleibt außen vor, wie z.B. Aktoren, die aber meiner Meinung nach auch den Rahmen des Buches sprengen würden. Viel Interessanter ist, dass es die Autoren schaffen, auf wesentliche konzeptionelle Unterschiede zwischen Java und Scala einzugehen und diese verständlich anhand von gut gewählten Beispielen dem Leser näher zu bringen. So widmen die Autoren dezidierte Kapitel beispielsweise den Themen „Funktionale Programmierung“, „Pattern Matching“ und „Implicits“. Während das Sprach-Feature des „Pattern Matchings“ für viele Java-Entwickler eher als eine Erweiterung des bisher Bekannten vorkommen dürfte, stellen die „Implicits“ nicht unbedingt eine Hürde, aber doch ein mächtiges Sprach-Feature dar, das erst verstanden werden muss. Dieses Kapitel fällt für meinen Geschmack schon fast zu kurz aus und zerteilt sich etwas durch Einschübe von verwandten Themen wie Currying. Etwas mehr wäre hier nicht schlecht gewesen, wenn dies auch ein wenig mehr Theorie bedeutet hätte. Umso besser hat es mir gefallen, dass auch praxisnahe Themen wie Testen näher erläutert werden. Die Autoren haben hier dem Scala-Framework specs den Vorzug gegeben und führen den Leser gut in dieses für einen Java-Entwickler eher ungewohnte Testframework ein.
Abschließend führen die Autoren den Leser kurz in die Entwicklung von Web-Applikationen mit Lift ein, um die Webseiten zu der Beispielapplikation zu gestalten. Der Quelltext des Beispiel-Projektes steht im Übrigen über github [2] zur Verfügung, die einzelnen Schritte können dort ebenfalls nachvollzogen werden.
Alles in allem liefern die Autoren ein kompaktes Buch ab, mit dem ein schnelles und vor allem zielgerichtetes Erlernen wesentlicher Aspekte von Scala in Form eines Workshops ermöglicht wird. Die Autoren verlieren sich dabei nicht in unendlichen Essays über die Vor- und Nachteile bestimmter Konzepte oder der ausufernden Darstellung von theoretischen Grundlagen, sondern bringen alles kurz und prägnant auf den Punkt. Das Werk erhebt dabei ausdrücklich den Anspruch, keine Referenz darzustellen und hebt sich dadurch wohltuend von den bisherigen Buch-Publikationen zu Scala ab.
Insgesamt eine lohnende Buchlektüre, die auch für Ü40 geeignet ist.




