Neal Gafter氏は最近Jazoon'07にてJavaのクロージャと名付けたプレゼンテーションを行った。・・・また言語の進化(プレゼンテーション、mp3オーディオ、同時プレゼン/オーディオ)に関するプレゼンもまた行われた。
そのプレゼンは難解なものではなくクロージャへの比較的に全体的な入門知識、目的、現在あるソリューションの問題等に関するもので入りやすい会話型のスタ イルで行われた。もし以前に難解な技術書を読むのを放棄した経験があればこれはクロージャに入門し、それを理解するのに最適な道である。
Gafter氏はThe Perl Reviewに掲載されていたMark Jason Dominusの記事からの引用文を用いてプレゼンを始めた。
今リカージョンを使わないで言語開発をしようとする人が笑われているように、また30年後にはクロージャなしで言語を開発しようとする人間もそうなるだろう。
Neal Gafter氏はクロージャの目的が現在開発者達が匿名の内部クラスで行っている同様のことをクロージャでもう少し簡単に成し遂げさせることであると語っている。API、コントロールAPIの統合、機能、集合作動等をもっと簡単に強固に行うということだ。
APIをコントロール可能にすることによって、Gafter氏は自分のコードを追加する指定のセクションを使った、APIの使用方法をドキュメントが説明するところのボイラープレートコードを減少させたいと考えている。開発者達は単純にJavaにAPI形態を表現する簡潔で明確な道がないので、頻繁にカットアンドペーストしているのだ。
Neal Gafter氏はこのアプローチの問題点を指摘しながら匿名のクラスを使用しどのようにJava SE 5をそれぞれのループに実装するのか考えてみた。
これらの全ての例はあなた達が問題解決法を知っている部分を示しています。頭の中にもう既にソリューションがあるのです。それはとても明確なことです。Javaのプログラミング言語を表現するのが困難になりそこであなたは言語と鍵を握るコンパイラと格闘することになるのです。
そこで彼はSwingイベントリスナー達に対してクロージャ提案の文章論と意味論について述べ、例にロックを伴うコントロールAPIからオペレーションの集合までを盛り込んで説明した。
このプレゼンはJavaのクロージャが大切で不可欠であると感じている参加者からとても好評であったが、しかし他の人々は納得がいかなかったようだ。 Fabrizio Gianneschi氏はこのプレゼンを見た理由を次のように述べている。”私はクロージャには反対しています。彼の以前のスピーチは聞いていないのです がJava Championのメーリングリスト上の彼の考えに共感しているので今回クロージャが実用的であることを証明してほしいのです。”
この件に関する更なる詳細はJavaのクロージャのウェブサイトで入手できる。またInfoQでクロージャに関する記事に注目してほしい。