'Closures' JSR haalt het niet

21/11/08 om 10:10 - Bijgewerkt om 10:09

Bron: Datanews

Eind vorig jaar werd op JavaPolis (sindsdien omgedoopt in Devoxx) Java-geschiedenis geschreven, en om meer dan een reden. Zo werd een door velen omstreden uitbreiding van de Java-taal voorgesteld, in casu 'closures'.

Eind vorig jaar werd op JavaPolis (sindsdien omgedoopt in Devoxx) Java-geschiedenis geschreven, en om meer dan een reden. Zo werd een door velen omstreden uitbreiding van de Java-taal voorgesteld, in casu 'closures'.

Bovendien werd het initiatief voor zo'n uitbreiding voor het eerst genomen door Java-gebruikersgroepen, en niet van de minste: de Belgian Java User Group (BeJUG) en de Braziliaanse SouJava (allicht 's werelds grootste). Zij dienden een JSR in - alias Java Specification Request - met Neal Gafter, een vooraanstaande Java-goeroe, als 'spec lead', zeg maar als auteur. Een jaar later blijkt die JSR evenwel een voetnoot te zijn geworden in de Java-geschiedenis, want de initiatiefnemers zelf hebben de JSR weer ingetrokken. Het werd hen immers duidelijk dat het voorstel niet zou worden aanvaard door het Java Community Process - de organisatie die de ontwikkeling van het Java-platform als een Dobermann beheert.

Niet dat het voorstel inherent problemen had. Integendeel, Neal Gafter publiceerde eerder dit jaar al een prototype dat de volledige functionaliteit illustreerde. Maar volgens Stephan Janssen, voorzitter van de BeJUG, bleef en blijft het hele 'closures'-gebeuren nog voor te veel commotie zorgen, hoewel de discussie nu al heel wat jaren wordt gevoerd. Het idee van closures (waarbij een blok code kan worden aangewend als een argument voor een functie call) is dan ook niet nieuw en wordt al in talen als LISP, maar ook nieuwkomers als Ruby aangetroffen.

De JSR zelf weerspiegelde volgens auteur Neal Gafter een consensus, maar de gebeurtenissen van het voorbije jaar leerden dat die er nog lang niet was. Integendeel, meerdere alternatieven kwamen even sterk in de kijker te staan, zoals Stephen Colebourne's First Class Methods (FCM, in combinatie met Java control Abstractions) en Concise Instant Creation Expression (CICE, door Bob Lee, Doug Lea en Joshua Bloch, in combinatie met Automatic Resource Management). Maar ook werd gesuggereerd om helemaal niets te doen! Volgens de tegenstanders zouden 'closures' zoals voorgesteld door Gafter, de Java-taal al te complex maken en minder aantrekkelijk voor de meeste ontwikkelaars. Anderen wijzen dan weer op de voordelen van 'closures', waarbij onder meer wordt verwezen naar James Gosling - de vader van Java - die stelt dat het weglaten van 'closures' uit Java veeleer het gevolg was van tijdsdruk. Een 'on line poll' op java.net vat de situatie mooi smane: 43 procent voorstanders voor closures, tegen 38 procent liever niet (naast 4% voor CICE en 15% voor FCM).

Kortom, Stephan Janssen - die tekende voor het JSR voorstel - verwacht dus niet echt een aankondiging van 'closures' in de presentatie over Java 7 op het komende Devoxx event in december. "Dat wordt vermoedelijk pas iets voor Java 8!"

Onze partners