Talk: 13:00–13:45 (deutsch)

Functional Programming for the Busy Java Developer

Seit Java 8 halten funktionale Konzepte zunehmend Einzug in die Java-Welt. Trotz moderner Features wie Lambdas, Pattern Matching, Records oder Sealed Classes bleibt in vielen Projekten jedoch Skepsis: Die Lernkurve wirkt hoch und der resultierende Code angeblich unlesbar oder „nicht Java-typisch“. Dabei verspricht funktionale Programmierung geringere Komplexität, klarere Datenflüsse, erwartungskonformes Verhalten und eine deutlich bessere Testbarkeit – Vorteile, die sich gerade in größeren Systemen auszahlen.

In diesem Vortrag untersuchen wir, wie weit man mit modernem Java funktional denken und arbeiten kann. Wir zeigen anhand eines durchgängigen Beispiels zunächst die Eleganz funktionaler Lösungen (z. B. in Haskell) und entwickeln dann Schritt für Schritt eine idiomatische Java-Alternative. Dabei betrachten wir sowohl gut unterstützte Konzepte wie Immutability, Higher-Order Functions und algebraische Datentypen (über Records und Sealed Classes) als auch Bereiche, in denen Java an Grenzen stößt oder zusätzliche Bibliotheken nötig sind – etwa List Comprehensions, Currying, Partial Function Application oder Zipping.

Am Ende wisst ihr, welche funktionalen Prinzipien sich sinnvoll auf Java übertragen lassen, wo Workarounds nötig sind und wie ihr durch kluge Datenmodellierung ungültige Zustände vermeidet, natürlichere Kontrollflüsse erzeugt und die Wartbarkeit eurer Anwendungen verbessert – ohne das Java-Ökosystem zu verlassen.

Falk Sippach

sippsack

Falk arbeitet bei embarc als Softwarearchitekt, Berater und Trainer. Bereits seit 20 Jahren unterstützt er in meist agilen Softwareentwicklungsprojekten im Java-Umfeld. Als aktiver Bestandteil der Community (iSAQB, JUG Darmstadt, Java Champion) teilt er sein Wissen in Artikeln, Blogs, sowie bei Vorträgen auf Konferenzen oder Usergroups und unterstützt bei der Organisation diverser Veranstaltungen.

Till Rauch

Till Rauch is a student of mathematics at the Karlsruhe Institute of Technology and does software development as a working student at Active Group GmbH in Tübingen. He is passionate about functional programming and enjoys exploring intuitive user interface design.