Schweitzer Fachinformationen
Wenn es um professionelles Wissen geht, ist Schweitzer Fachinformationen wegweisend. Kunden aus Recht und Beratung sowie Unternehmen, öffentliche Verwaltungen und Bibliotheken erhalten komplette Lösungen zum Beschaffen, Verwalten und Nutzen von digitalen und gedruckten Medien.
Dieses Buch stellt eine überarbeitete und erweiterte Ausgabe meines Buches »Funktionale Programmierung in Java« aus dem Jahr 2020 dar. Seit dem Erscheinen der ersten Auflage wurde Java um wichtige neue Sprachelemente erweitert. So wurden z. B. Mittel für die Definition von algebraischen Datentypen sowie Pattern Matching eingeführt, zentrale Konzepte der funktionalen Programmierung. Auch die Programmiersprache Kotlin, die die funktionale Programmierung wesentlich besser unterstützt, hat als Sprache für die Java-Plattform stark an Popularität gewonnen.
Dies war Anlass, eine neue Auflage des Buches zu verfassen. Die Neuauflage wurde um zusätzliche Inhalte, die die neuen Möglichkeiten von Java behandeln, erweitert. Ferner wurden einige Kapitel neu strukturiert und grundlegend überarbeitet. Schließlich wurde ein neuer Teil hinzugefügt, der die funktionale Programmierung mit Kotlin behandelt. Der Buchtitel wurde dementsprechend auf »Funktionale Programmierung in Java und Kotlin« erweitert.
Funktionale Programmierung unterscheidet sich grundsätzlich von der gewohnten Welt der imperativen und objektorientierten Programmierung. Schon die Ursprünge sind gänzlich unterschiedlich. Während die imperative Programmierung als Abstraktion von Maschinencode entstanden ist und die objektorientierte Programmierung das Ziel verfolgt, Dinge der Realität abzubilden, hat sich die funktionale Programmierung auf Basis einer mathematischen Theorie, des Lambda-Kalküls, entwickelt. Mehr erfahren Sie dazu in Kapitel 1 dieses Buches.
Für die funktionale Programmierung muss man sich daher auf andere Denkweisen, Prinzipien und Programmiermuster einlassen. Ziel dieses Buches ist es, diese Denkweisen, Prinzipien und Programmiermuster mit ihren Ausprägungen in Java und Kotlin sowie die darauf aufbauenden Techniken und Systeme zu vermitteln. Dabei orientiert es sich stark an den vielfältigen Ideen, Konzepten und Anwendungen, die die Forschung zur funktionalen Programmierung in mehr als 60 Jahren hervorgebracht hat. In diesem Sinne kann das Buch auch als ein Versuch betrachtet werden, dieses vielfältige Wissen auf die Programmierung in Java und Kotlin zu übertragen. Das Buch verfolgt daher ganz explizit das Ziel, nicht nur die Sprachkonzepte und die neuen Systeme und Bibliotheken zu beschreiben, sondern auch die grundlegenden Ideen und Prinzipien zu vermitteln und damit ein tieferes Verständnis für die funktionale Programmierung zu schaffen.
Das Buch hat seinen Ursprung in Lehrveranstaltungen zur funktionalen Programmierung, die ich seit vielen Jahren an der Johannes Kepler Universität Linz und an der Fachhochschule Hagenberg halte. Dabei handelt es sich um Lehrveranstaltungen zur funktionalen Programmierung, in denen ich abwechselnd die Sprachen Java, Kotlin und Scala einsetze, und um die Lehrveranstaltung »Principles of Programming Languages«, in der neben anderen Sprachen auch die rein-funktionale Sprache Haskell behandelt wird.
Das Buch richtet sich an Softwareentwickler bzw. Studierende der Informatik, die bereits Erfahrung mit der objektorientierten Programmierung in Java (und evtl. Kotlin) haben und sich in das neue Paradigma der funktionalen Programmierung einarbeiten wollen. Die umfassende Behandlung des Themas sollte es ermöglichen, fundierte Kenntnisse der funktionalen Programmierung zu erwerben. Das Buch kann aber auch genutzt werden, um sich gezielt Kenntnisse über spezielle Techniken anzueignen.
Während Erfahrung in der Programmierung in Java vorausgesetzt wird, sind Kenntnisse der Programmiersprache Kotlin nicht erforderlich. Teil IV beginnt mit einer Einführung in die wichtigsten Sprachelemente von Kotlin, bevor auf die funktionale Programmierung in Kotlin eingegangen wird. Mit dem Wissen über Kotlin sollte es dann auch möglich sein, die mit Java vorgestellten funktionalen Prinzipien auf Kotlin zu übertragen.
Das Buch eignet sich auch als begleitendes Lehrbuch zu Vorlesungen zum Thema funktionale Programmierung. Ich würde das Buch auch als ergänzendes Lehrbuch zu einem Kurs über fortgeschrittene Programmiertechniken in Java und Kotlin oder zu einer sprachunabhängigen Einführung in die funktionale Programmierung empfehlen.
In der Neuauflage des Buches wurde der Inhalt in mehrere Teile gegliedert. Nach einer allgemeinen Einführung in die grundlegenden Konzepte der funktionalen Programmierung in Kapitel 1 folgen vier Teile mit folgenden Inhalten:
Je nach Interesse und Vorkenntnissen bieten sich verschiedene Varianten für die Reihenfolge der Teile und Kapitel dieses Buches an. Auch die Lektüre einzelner Themen ist möglich. In den einzelnen Kapiteln wird immer wieder auf Inhalte und Beispiele früherer Kapitel verwiesen, die dann gezielt nachgelesen werden können. Im Folgenden sind einige mögliche Lesefolgen angeführt.
Es wird natürlich empfohlen, alle Kapitel nacheinander zu lesen. Die Lektüre der Teile I und II, in denen die Grundlagen und allgemeinen Prinzipien der funktionalen Programmierung vermittelt werden, schaffen auch ein tieferes Verständnis für die in Teil III vorgestellten Systeme. Darüber hinaus wird im Teil über Kotlin häufig auf die entsprechenden Konzepte in Java aus den Teilen I bis III verwiesen.
Wenn man nur an der funktionalen Programmierung in Java interessiert ist, kann natürlich Teil IV über Kotlin ausgelassen werden.
Falls man bereits Erfahrung in der funktionalen Programmierung mit Java oder einer anderen Sprache hat und sich mit der funktionalen Programmierung mit Kotlin vertraut machen möchte, kann man auch direkt mit Teil IV beginnen und eventuell gezielt Inhalte aus den Teilen I bis III nachlesen.
Teil IV: FP in Kotlin
Wenn der Leser jedoch wenig Erfahrung mit funktionaler Programmierung hat, ist es ratsam, sich zuerst mit den Konzepten in Java vertraut zu machen. In diesem Fall kann Teil III übersprungen werden.
Ein weiterer Pfad bietet sich an, wenn man in erster Linie an funktionalen Systemen und weniger an den allgemeinen Prinzipien der funktionalen Programmierung in Java interessiert ist. Hier besteht die Möglichkeit, mit den Kapiteln 1 und 2 zu beginnen und dann mit Teil III fortzufahren. Bei Verweisen auf Inhalte früherer Kapitel können diese gezielt nachgelesen werden.
Das Buch bietet auch die Möglichkeit, sich einzelne Techniken zu erarbeiten. Es wird empfohlen, mit den Kapiteln 1 und 2 über die Grundlagen zu beginnen, und man kann dann:
In diesem Buch gelten die folgenden Konventionen für Schriftarten, Schreibweisen und Stile.
Größere Programmbeispiele, besonders Code von Klassen, werden mit Unterschrift versehen und mit der Kategorie Listing nummeriert. Kürzere Anweisungsfolgen werden ohne Nummerierung direkt in den Fließtext eingefügt.
Der Programmierstil in diesem Buch weicht von den üblichen Konventionen für imperative und objektorientierte Java-Programme ab. Dafür gibt es zwei Gründe:
1) In einem Buch müssen Programme kompakter formatiert werden, als es in Sourcecodedateien üblich ist. So werden oft kompakte Namen verwendet, zusätzliche Zeilenumbrüche eingefügt und auf Leerzeilen verzichtet.
2) Funktionale Programme unterscheiden sich auch im Programmierstil von imperativen Programmen. Funktionale Programme sind in der Regel wesentlich kompakter und dichter als imperative Programme. So gibt es in rein-funktionalen Programmen keine Anweisungsfolgen, sondern nur (geschachtelte) Ausdrücke und Funktionsanwendungen. In den Codebeispielen wird daher sehr oft mit einzelnen Anweisungen und Ausdrücken gearbeitet und dann in der Regel auf Blockklammern verzichtet.
Für alle Programmbeispiele wird Fixpunkt-Font verwendet. Ebenso werden...
Dateiformat: ePUBKopierschutz: Wasserzeichen-DRM (Digital Rights Management)
Systemvoraussetzungen:
Das Dateiformat ePUB ist sehr gut für Romane und Sachbücher geeignet - also für „fließenden” Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an. Mit Wasserzeichen-DRM wird hier ein „weicher” Kopierschutz verwendet. Daher ist technisch zwar alles möglich – sogar eine unzulässige Weitergabe. Aber an sichtbaren und unsichtbaren Stellen wird der Käufer des E-Books als Wasserzeichen hinterlegt, sodass im Falle eines Missbrauchs die Spur zurückverfolgt werden kann.
Weitere Informationen finden Sie in unserer E-Book Hilfe.