title: Should I return CompletableFuture or Future when defining API?
body: <p>In Java 8, is it better for interface or abstract class to define APIs returning <code>CompletableFuture</code> instead of returning <code>Future</code>? Considering <a href="https://stackoverflow.com/questions/23301598/transform-java-future-into-a-completablefuture">it is ugly converting <code>Future</code> to <code>CompletableFuture</code></a> and the fact that <code>CompletableFuture</code> will give the caller more flexibility of using functional style directly, what could be a good reason for an API to just return <code>Future</code>? </p>