JSR ‘closures’: L’adhésion n’est pas générale

A la fin de l’année dernière, l’événement JavaPolis (depuis rebaptisée Devoxx) présentait une extension très controversée du langage Java, en l’occurrence les closures.

A la fin de l’année dernière, l’événement JavaPolis (depuis rebaptisée Devoxx) présentait une extension très controversée du langage Java, en l’occurrence les closures.

L’initiative de cette extension avait été lancée par le Belgian Java User Group (BeJUG) et le groupe brésilien SouJava (assurément le plus étendu au monde). Ils avaient soumis un JSR (Java Specification Request) avec Neal Gafter, éminent gourou du monde Java, comme auteur. Mais un an plus tard, ce JSR semble être passé à la trappe, car les initiateurs ont eux-mêmes retiré leur JSR. Il leur est en effet apparu clairement que la proposition ne serait pas acceptée par le Java Community Process, l’organisation en charge de la gestion du développement de la plate-forme Java .

N’allez pas croire pour autant que la proposition était bancale. Au contraire, Neal Gafter avait déjà publié au début de cette année un prototype illustrant toutes les fonctionnalités. Mais selon Stephan Janssen, président du BeJUG, tout le concept des closures a continué et continue à provoquer trop d’agitation, même si le débat dure depuis maintenant de nombreuses années. L’idée des closures (dans lesquels un bloc de code peut être utilisé comme un argument pour un appel de fonction) n’est donc pas nouvelle et se rencontre déjà dans d’autres langages comme LISP et même des nouveaux venus comme Ruby.

Selon Neal Gafter, le JSR lui-même reflétait un consensus mais les événements de l’année dernière ont montré qu’on en était encore loin. Du reste, plusieurs alternatives ont également soulevé un vif intérêt, notamment les First Class Methods (FCM, en combinaison avec les Java Control Abstractions) et la Concise Instant Creation Expression (CICE, en combinaison avec l’Automatic Resource Management). Mais on a également suggéré de ne rien faire du tout! Selon les détracteurs, les closures telles qu’elles sont proposées par Gafter rendraient le langage Java trop complexe et moins attrayant pour la plupart des développeurs. D’autres en revanche mettent en avant les avantages des closures, en se référant notamment à James Gosling – le “père” de Java – selon qui on a dû renoncer aux closures dans Java par manque de temps. Un sondage en ligne sur java.net a d’ailleurs bien illustré la situation puisqu’on a relevé environ 43% de partisans des closures contre environ 38% d’opposants (ainsi que 4% pour la CICE et 15% pour les FCM).

En résumé, Stephan Janssen – qui avait signé en faveur de la proposition de JSR – ne s’attend donc pas vraiment à une annonce sur les closures lors de la présentation de Java 7 au prochain événement Devoxx en décembre. “Il faudra très probablement attendre Java 8!”

Vous avez repéré une erreur ou disposez de plus d’infos? Signalez-le ici

Contenu partenaire