Functional Programming in Scala

Functional Programming in Scala Functional Programming in Scala
Paul Chiusano, Rúnar Bjarnason
Manning Publications
September 2014
5star

Vor einigen Jahren habe ich schon einmal einen Anlauf in funktionaler Programmierung genommen und dann aber abgebrochen. Obwohl ich dieses Paradigma damals für hochinteressant gehalten habe, schien es mir doch letztlich “zu abstrakt und mathematisch” zu sein, als dass sich eine Einarbeitung lohnen würde. Bekanntlich ist alles knapp im Leben, vor allem Zeit und die intellektuellen Ressourcen im Oberstübchen. Einen breiten Durchbruch habe ich der Technologie nicht zugetraut.

Das scheint sich jetzt aber zu ändern. Bei den Big Data-Leuten ist es schon jetzt ein wichtiges Hilfsmittel, “map and reduce” sind quasi reine funktionale Konzepte. Aber auch im Microservice-Umfeld, wo i.d.R. ein begrenztes Feature-Set ohne großes Objektmodell umgesetzt wird, sehe ich Anwendungsmöglichkeiten.

Ich habe mir deswegen zwei Wochen frei geschaufelt und mich ausschließlich mit Scala beschäftigt. Die Zeit ist auch dann notwendig, wenn man bereits funktionale Konzepte wie Closures und Lambdas aus anderen Sprachen wie Groovy oder C#/LINQ kennt. Es kommen in Scala doch eine ganze Reihe neuer Konzepte und Typen hinzu, die alle ausprobiert werden müssen.

Das Buch ist als Einstieg in Scala aus meiner Sicht ungeeignet, obwohl es im Einleitungstext durchaus so deklariert wird. Es kommt hier wirklich Schlag auf Schlag. Es taucht schon mal in einem Absatz ein wichtiges FP-Konzept, haufenweise neue Scala Syntax und noch schnell ein Vergleich mit Java auf. Das war mir zu verwirrend und ich habe mir zuerst Scala for the impatient zu Gemüte geführt, das im Vergleich zu diesem Buch ein stumpfes Syntax-Erklären bietet. Mit der Vorbereitung aber ist das Buch dann sehr gut zu lesen und unverzichtbar, da erst hier das “Big Picture” aufscheint, Patterns und Idiome erklärt und konkrete Anwendungsmöglichkeiten aufgezeigt werden. Ich hatte jedenfalls etliche Aha-Erlebnisse und bin jetzt offiziell ein Scala-Fan.