Андрей Ершов — Future в Java & Scala

Андрей Ершов — Future в Java & Scala

С ростом количества запросов к сервисам, набирает популярность асинхронный стиль написания приложений. В связи с этим, возникла идея подробно посмотреть на различные варианты реализации Future в языках Java и Scala и сравнить их между собой.

Начнем мы с Java и посмотрим на эволюцию Future в этом языке:

- В Java 5 появился класс Future, но он предоставлял только блокирующий API.
- Сторонние библиотеки, такие как Guava, предоставляли свои абстракции Future, которые однако тоже обладали недостатками.
- Текущее состояние мира Java — класс CompletableFuture, который действительно позволяет писать код в асинхронном стиле. Есть ли у него какие-то недостатки?

В ходе доклада, мы сравним CompletableFuture с Future в Scala и посмотрим, кто одержит победу.

После сравнения, мы поговорим об обработке ошибок в асинхронных вычислениях, в том числе рассмотрим альтернативный исключениям подход к обработке ошибок — монады и монад-трансформеры, который предлагает Scala, являясь функциональным языком.

Если останется время, мы так же поговорим о классе Task в scalaz и monix.

3fc5b5eb32bd3b48d7810fd67b37f9a1?s=128

Moscow JUG

August 31, 2017
Tweet