Почему completableFuture использует вместо привычного callable supplier, зачем так путать людей привыкших к старому доброму callable?
CompletableFuture относится к Java8, а там было внедрены зачатки функционального программирования. Собстенно CompletableFuture может быть расмотренно как монада.
Ну а в функциональном программировании Supplier более знакомое слово, нежели Callable, вот и все + держит общий стандарт. Ведь если бы было наоборот, тоже было бы запутанно, везде Supplier, а тут бац, Callable.
Вторая разница что Callable может бросать исключение, а Supplier нет (Ну разве что RuntimeException). Почему так, сложно сказать.
Если посмотреть API, то видно, что данный класс веден с 1.8, следовательно его сразу спроектировали для использования с лямбда-выражениями.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей