Я б не назвал Future глючной и недальновидной поделкой,
«взрослые мужики»
ей не пользуются от того, что ее нельзя использовать в pure вычислениях (из за eager семантики), но в целом она гораздо лучше того, что есть в java.
scalaz-streaming (он же fs2)
Это немного из другой оперы, fs2 стоит сравнивать с monix-reactive, akka-streams, etc... Более «чистые» альтернативы future это monix.eval.Task, monix.eval.Coeval, scalaz.concurrent.Task, cats.effect.IO.
Скала это не только «синтаксис получше», это как раз возможность изучить новые концепции, узнать что такое и как используются: алгебраические типы данных, типы высших порядков, структурная типизация, экзистенциальные типы, generic programming, тайпклассы, параметрический полиморфизм, recursion schemes.
В целом скала сообщество можно разделить на 3 категории:
— те, кто использует scala as better java
— сторонники прагматичного подхода, которые стараются писать используя техники FP, но и могут использовать мутабельность, побочные эффекты где это уместно; такой подход пропагандирует Мартин Одерски, так написана к примеру Akka
— сторонники чистого haskell-like кода, когда програма должна быть полностью referential transparent без мутабельного состояния и побочных эффектов.
Используя 3й подход можно узнать на практике что такое моноид, монада, аппликативный функтор, монадные трансформеры, линзы, etc...
В целом здорово расширяет кругозор.
Я не могу понять, в какой области она лучше, «каково ее предназначение».
На мой взгляд писать асинхронные приложения, stateful приложения гораздо удобней на скала.
похоже на twitter