Functional Programming in Java - Closure/Lambdas in Java 8
Teil 1: Einführung in die funktionale Programmierung für
Java-Entwickler
Die Session wendet sich an Java-Entwickler, die noch nicht mit funktionalen
Sprachen in Berührung gekommen sind, sich aber dennoch auf die zukünftigen
Erweiterungen von Java (Stichwort "Lambdas") einstellen wollen. Es wird
eine Einführung in die Prinzipien der funktionalen Programmierung
gegeben. Wofür braucht man so etwas wie First-Class-Funktions,
Lambda-Ausdrücke oder Closures? Was kann man damit besser oder
anders machen als mit "normalem" Java?
Es gibt seit geraumer Zeit Bestrebungen, Java um Elemente der funktionalen
Programmierung zu erweitern. Die wohl bekannteste Diskussion zu diesem
Thema dreht sich um das umstrittene neue Sprachmittel der Lambdas (vormals
als Closures bekannt). Mit Java 8 wird es dafür Sprachunterstützung
geben und auch JDK-Komponenten (java.util.concurrent.ParallelArray), die
funktional angelegt sind. Worum geht es bei alledem?
Die Session wendet sich an Java-Entwickler, die noch nicht mit funktionalen
Sprachen (z.B. Haskell, ML, F#, Clojure, Scala, Groovy) in Berührung
gekommen sind, sich aber dennoch auf die zukünftigen Erweiterungen
von Java einstellen wollen.
Es soll in der Session nicht um Lambdas in Java gehen, sondern um eine
Einführung in die Prinzipien der funktionalen Programmierung.
Wofür braucht man so etwas wie First-Class-Funktions, Lambda-Ausdrücke
oder Closures? Was kann man damit besser oder anders machen als mit
"normalem" Java?
Die Beschäftigung mit funktionale Paradigmen ist nicht nur eine
Vorbereitung auf die zukünftige Spracherweiterungen von Java, sondern
kann den Entwickler ganz generell auf neue Ideen bringen. Denn prinzipiell
lassen sich Ideen aus der funktionalen Programmierung bereits heute schon
in Java einsetzen. Man muss dazu über die vertrauten objekt-orientierten
Paradigmen hinausgehen und sich in die funktionale Arbeitsweise hineindenken.
Hier wird die Session Denkanstöße liefern.
|
Teil 2: Closures/Lambdas in Java 8
Seit einigen Jahren wird diskutiert, ob und wie Java um Elemente der
funktionalen Programmierung erweitert werden soll. Für den Release
8 von Java ist nun eine entsprechende Spracherweiterung angekündigt:
es wird sogenannte Lambdas (vormals als Closures bekannt) geben.
In dieser Session werden die neuen Sprachmittel ausführlich vorgestellt:
SAM(Single Abstract Method)-Klassen, Lambda-Ausdrücke, Exception Transparency,
Defender-Methoden, Method References und Local Variable Capture.
|
|
PREREQUISITES
|
|
Level:
|
einführend - mittel |
Duration:
|
60 min |
Prerequisites:
|
Java-Entwickler, die noch nicht mit funktionalen Sprachen
(z.B. Haskell, ML, F#, Clojure, Scala) in Berührung gekommen sind,
sich aber dennoch auf die zukünftigen Erweiterungen von Java einstellen
wollen. |
Presented at:
|
JAX 2011
,
Mainz, Germany, May 2-6, 2011
W-JAX 2011
, Munich, Germany,
November 7-11, 2011 |
If you are interested to hear more about this
and related topics you might want to check out the following seminar or
skim through some further reading:
|
|
|
Seminars
|
Articles
|
|
|