apache/cassandra — pull request #50 by yulin2 (2014-12-31 20:01:59+00:00)
Title: opinion on refactoring ListenableFuture to Java 8 CompletableFuture

I'm doing research on new concurrent constructs in Java 8. I found `CompletableFuture` in Java 8 has the same functionality as Guava `ListenableFuture`. But `CompletableFuture` is much nicer because it comes together with Lambda expression in Java 8, and it is monadic, which makes the code more readable and cleaner. Also, it provides more ways to compose different tasks. Therefore, using `CompletableFuture` instead of `ListenableFuture` is better for future extension and maintenance of the code.

I tried to refactoring one Guava `ListenableFuture` to Java 8 `CompletableFuture` in Cassandra, so you can see the difference in the code. You don't have to merge this pull request. I'm just wondering your opinion on this kind of refactoring (or migrating the code from Java 7 to Java 8). Do you think the refactoring is useful? Do you have any plan to use Java 8?