
Javaにおけるラムダ:詳細な分析
PythonやRubyのような言語は長いことラムダを使ってきたが、最近のJVMベース言語の台頭(特にGroovyとScala)により、Javaにおいてもラムダを求める声が再燃した。ラムダとは何か?そして、Java言語にラムダを追加するにあたって提案されたシンタックスはどのようなものか?この記事はこれら2つの問いに対して詳細に検討する。

PythonやRubyのような言語は長いことラムダを使ってきたが、最近のJVMベース言語の台頭(特にGroovyとScala)により、Javaにおいてもラムダを求める声が再燃した。ラムダとは何か?そして、Java言語にラムダを追加するにあたって提案されたシンタックスはどのようなものか?この記事はこれら2つの問いに対して詳細に検討する。
Googleが提供するソーシャルネットワークであるGoogle+(Googleプラス)はほとんどがJavaとJavaScriptで構築されている一方、Google+のビデオ会議フレームワークであるHangoutsはクライアントサーバアプローチを用いている。
数日前に、 Oracleの Maurizio Cimadamore氏は、最初のラムダ式の実装を OpenJDK のMercurial リポジトリにアップした。これで新しいシンタクスを初めて見ることができるが、コミュニティで議論を巻き起こしている。
SunがクロージャをJavaに追加するというDevoxxにおける突然の公表に続いて、Mark Reinhold氏は決定に至る経緯をブログで公開した。
Mark Reinhold氏は、Devoxxコンファレンス開催中、JDK7がクロージャをサポートすることを公表した。この非常に議論されたフィーチャをサポートするために、JDK7のリリースは、2010年の9月ごろまで延びる。
Devoxx開催中、Java SE Chief EngineerのMark Reinhold氏は、2010年上旬のリリース日を見越して、Java 7の最新の方向性についてプレゼンテーションを行った。Mark氏はこのプレゼンテーションを暫定案と表現し、決定事項ではないとしたが、コミュニティからは、特にクロージャの切り捨てに関して多くの反応が寄せられた。
複雑な構文解析を実行するAPIによっては、イベントを通じて中間結果を公開するものがある。Eric White氏が実証するように、クロージャーを使用すれば、これらのAPI呼び出しを大幅に簡略化することができる。
最新のハードウェア上で利用可能なプロセッサコアの数が増えるにつれて、新しいハードウェアを最大限活用するような方法で開発者が開発することが一層重要になっている。
過去2,3年間に渡ってJava SE 7の一部としてかもしくは将来行われる何らかのリリースにおいてJava言語にクロージャを付加することに関して広いディスカッションが行われてきた。Javapolisにおいて、Joshua Bloch氏はその問題における自身の意見と、なぜCICEがより適したアプローチであると感じているのかを述べた。
ActionScript Virtual Machine 2(AVM2)はActionScript 3.0(AS3)バイトコードをFlash Player 9ランタイム内で実行する。Action Script 3はオブジェクト指向のプログラミング言語で、Adobe FlexとAIR内でFlashベースのアプリケーションを構築する際に使用されている。
Neal Gafter氏は、Javaのクロージャに対する提案の合意を発表した。3つの主要なクロージャの提案(BGGA, FCM, CICE)の作成者の一人を除いて、JSRをサポートしていくことに合意した。