Hi all,

Luke, Thomas, and I had some in-person discussions about the use of Java 8
futures and Guava futures in the portability support code. I wanted to
bring our thoughts to the dev list for feedback.

As background:

 - Java 5+ "Future" lacks the main purpose of future, which is async
chaining.
 - Guava introduced ListenableFuture to do real future-oriented programming
 - Java 8 added CompletionStage which is more-or-less the expected interface

It is still debatable whether Java got it right [1]. But since it is
standardized, doesn't need to be shaded, etc, it is worth trying to just
use it carefully in the right ways. So we thought to propose that we
migrate most uses of Guava futures to Java 8 futures.

What do you think? Have we missed an important problem that would make this
a deal-breaker?

Kenn

[1] e.g.
https://stackoverflow.com/questions/38744943/listenablefuture-vs-completablefuture#comment72041244_39250452
and such discussions are likely to occur whenever you bring it up with
someone who cares a lot about futures :-)

Reply via email to