BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Javaクロージャーのプロポーザルを比較する~JCAのポジションペーパーが公開

Javaクロージャーのプロポーザルを比較する~JCAのポジションペーパーが公開

Javaのクロージャーに関する提案書であるC3Sを書いたHoward Lovatt氏が、よく知られた4つの提案(C3S, FCM, CICE, and BGGA)の比較をした。同時期に、FCM提案書の作成者が、FCM上での制御文の抽象化に関する新たなポジションペーパー公開した。Ricky Clarkson氏は、CICEは不十分なもので、それには、Googleでの内部的な政策が影響しているのではないかと考えている。

Lovatt氏は、4つの提案書を見て、11の観点に関してそれぞれを比較している。

  1. 内部クラスやクロージャーのインスタンスを作成する際のシンタックスの短さ
  2. 内部クラスのメソッドや自身へのアクセス方法
  3. 内部クラスのインスタンスでの複数のメソッドのオーバーライド
  4. クラスに定義されたメソッドの実装
  5. インターフェースの型
  6. メソッド、コンストラクタ、フィールドの書式
  7. 短いシンタックス(特に、制御文や短いメソッド)
  8. ローカル変数の割り当てと、final変数が不要であること
  9. 例外の種類
  10. メソッド/関数の型(シンタックスの短さを含む)
  11. return、break、continueによるNon-local transfer

彼がこれを書いた目的は、上記以外にも提案されるかもしれないものを含めた提案について、内部クラスとクロージャーの部分を分類することである。この比較に続いて、Stephen Colebourne氏、Stefan Schulz氏、Ricky Clarkson氏らは、Javaの制御文の抽象化に関するポジションペーパー(まだ完成していないので提案段階でないことは明確ですが)とともにFCMを作成した。彼らによって、JCAの必要性を感じさせる。なぜなら、クロージャーが、予約語として使用されAPIが存在するといった、いわゆる適用段階にないからである。

最後に、Ricky Clarkson氏は、Googleの政策がBGGAの提案に影響を与えているのではないかと思っている。
JCPにコントリビュートできる人には制限がある。具体的には、雇用主がメンバーであるとメンバーになれないのである。Clarkson氏は、Josh Bloch氏のJCPとのコンタクトをとったが、既にCICEに提案しているので、JSR作成には興味が無いのかもしれないと言っている。CICE提案の共同者の一人であるBob Lee氏は、これはアンフェアな提案であり、急にJavaにクロージャーが組み込まれることはないと言っている。

この記事に星をつける

おすすめ度
スタイル

BT