一ヶ月ほどまえに 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/78f2408f019b116967b513b31d2916c874cdc17f/height=288;version=1;width=512/https%3A%2F%2Fblogger.googleusercontent.com%2Fimg%2Fb%2FR29vZ2xl%2FAVvXsEgVxJoNYJcNYeBFMkxZKh1z0XiWrIRgpQ7vpEICe_ol5PlKCjZgTKO7ASTvoF6tC71iOgEOyIDO6cOq_TFGeaKOAKeoCc3ZqsScB8n7BQW-YsD-R-P0kfjMXc7X9YXvwNV6EJiVQrY5KMk%2Fw1200-h630-p-k-no-nu%2Fppf.jpg)