一ヶ月ほどまえに Java 8 がリリースされました。ラムダも入ったことだし、お試しがてらゴールデンウィーク中に asterisque* の Scala コードの一部を Java で書き換える作業などを行っております。 ただまぁ asterisque* は非同期 RPC フレームワークですので、ラムダだけでなく Scala の Promise, Future もあちこちで使っています。うーんこいつらの互換性どうしようかなーと悩んでいたところ Java 8 に CompletableFuture というクラスが追加されいるのに気づきました。ざっと API リファレンスを読む限り以下のような特徴があります。 Scala の Future と同様に非同期処理間で成功 (計算結果) または失敗 (例外) を渡すことが出来る。 複数の処理スレッドで共有することも想定していて、早い者勝ちで結果を出すよ
![Java 8 の CompletableFuture が Scala の Future 並に使えそうな件](https://cdn-ak-scissors.b.st-hatena.com/image/square/07fa622cc0116fbbe0893a20bd6f615406b21264/height=288;version=1;width=512/http%3A%2F%2F3.bp.blogspot.com%2F-Ne5WqRNbnCM%2FU10Xi651uoI%2FAAAAAAAAQPE%2Fm_7ccWLk41k%2Fw1200-h630-p-k-no-nu%2Fppf.jpg)