次期Java SEとなるJava SE 7での採用が検討されている言語機能に関数型やクロージャがある。Java SE 7における目玉の1つに数えられる同機能だが、現在のところ仕様の候補は必ずしも1つではない。

2006年8月18日(米国時間)、Java言語の主要アーキテクトであるGilad Bracha氏、Neal Gafter氏、James Gosling氏、Peter von der Ahé氏らはJavaへ関数型やクロージャの導入を提案するホワイトペーパを公開。関係者からしてもこの提案はきわめて重要な位置にあるが、必ずしも同提案を採用しなければならないというわけではない。議論をする余地は依然として残されていると見たほうがいい。

これに関して、2007年4月11日(米国時間)、Howard Lovatt氏のブログにおいて興味深いホワイトペーパが公開されたので紹介しておきたい。同氏はJava 7に対するクロージャや内部クラスの提案は少なくとも4つはあり(以下参照)、文法が違うために比較は困難であるとしながらも、1つの比較例を紹介している。同氏は同じくクロージャの機能を提案している人物の1人だ。

  • Clear, Consistent, and Concise Syntax (C3S) for Java - Howard Lovatt氏
  • First-class methods: Java-style closures - Stephen Colebourne氏、Stefan Schulz氏
  • Concise Instance Creation Expressions: Closures without Complexity - Bob Lee氏、Doug Lea氏、Josh Bloch氏
  • Closures for the Java Programming Language (v0.5) - Gilad Bracha、Neal Gafter氏、James Gosling氏、Peter von der Ahé氏

Java 7に採用されるクロージャの仕様としては、2006年8月18日(米国時間)に公開されたホワイトペーパが有力であることには違いないが、同規格がそのまま採用されることに疑問を感じている向きもあるようだ。Javaに関数型やクロージャが導入されることは上級デベロッパにとってドラスティックな変更になる。今後どのように議論や標準化が進むのか引き続き注目していく必要があるだろう。