03.12.2009 12:16
Mark Reinholds Ankündigung auf der Devoxx-Entwicklerkonferenz vor rund zwei Wochen, Closures doch in das kommende Java 7 mit aufzunehmen, hat für einigen Wirbel in der Java-Community gesorgt. Der bei Sun verantwortliche Ingenieur fühlte sich jetzt dazu veranlasst, erneut Stellung zu nehmen.
Lange Zeit schienen Sun und die an Java 7 beteiligten Entwickler keinen Konsens zur Aufnahme der Closures zu finden: Die Funktion war für Java 7 frühzeitig versprochen, dann allerdings für eine Weile zurückgezogen worden. Closures könne nun doch Einzug halten, da die Zeitleiste zur Veröffentlichung der nächsten Java-Version kürzlich auf September 2010 nach hinten verschoben wurde, erläutert Reinholds. Closures jetzt nicht in Java einzubinden, hieße eine weitere unzeitgemäße Verzögerung, bis sie in Java 8 landen würden.
Die zeitliche Verschiebung für Java 7 lässt den Entwicklern Raum, neben einem offiziellen Java Specification Request (JSR) für Java SE 7 auch eine Closures-Implementierung im Rahmen des JDK 7 aufzusetzen. Reinhold, der sich als alten Lisp-Hacker bezeichnet, hat fürs Erste das Project Lambda vorgeschlagen, über das sich Interessierte an der Entwicklung einbringen können.
Das Closures-Konzept stammt aus funktionalen Programmiersprachen und wurde erstmals in dem Lisp-Dialekt Scheme vollständig umgesetzt. Mittlerweile unterstützen auch nichtfunktionale Sprachen wie C#, Delphi, Groovy, JavaScript, Lua, Perl, PHP, Python, Ruby und Smalltalk die Funktion. Closures reproduzieren beim Aufruf ihren Definitionskontext, selbst wenn der Kontext außerhalb der Funktion nicht mehr existiert.
Siehe dazu auch:
(ane)