придумали stackful корутины (файберы) т.к. ждут project loom? (ну и stackless корутин вроде тоже нет, кажется)
Правильно ли я понимаю, что писать без callback'ов пока что можно только с пом. asnyc и await (которые макросы; из какой-то библиотеки на github)?
И вообще идиоматично ли писать в императивном стиле (напр. как в Go с горутинами, каналами и select)?
про идиоматичность это предмет дебат, но вообще декларативно стараются Фьючи есть из встроенных абстракций, коллбеки не нужны для них (ну если хочется всегда можно офк) Хочется файберов => zio, cats-effects по поводу лум / кетс / зиво можно погуглить, но вот тут относительно свежий камент https://www.reddit.com/r/scala/comments/sa927v/how_will_looms_fibers_change_the_cats_effect_and/htsoydn/?utm_source=reddit&utm_medium=web2x&context=3
Понял, спасибо. Ну, коллбеки в данном случае - это лямбды в andThen. Про cats-effects и zio не знал. Спасибо.
andThen это и есть сиквеншал версия onComplete, они не так часто нужны 🤷♂️ скорее всего пригодятся map / flatMap
async await это самое худшее что когда либо пытались засунуть в скалу зс все время её существования, и хорошо что не засунули. И да, не коллбеки а лямбды.
Чем плох асинк/эвейт? На мой взгляд куда понятнее чем for-нотация. Я бы с удовольствием затащил бы к себе, если бы была хоть одна взрослая, поддерживаемая либа.
тем что дешугарится в непрозрачные макро/рантайм штуки
Это смотря как либа будет написана. Ни кто не мешает написать дешугаринг в мап/флатмап, на сколько я понимаю. Понятное дело с ограничениями, но тем не менее.
ну во-первых – как Леша сказал оно может и во флатмаппы развернуться, во-вторых — а что собственно плохого в непрозрачных макро штуках? ты их используешь каждый день и не особо страдаешь, в других языках с этим проблем тоже нет
Где использую? Кодеки вывести?
Линзы? Бэттер монадик фор? Шэплес (для кодеков).
1) самый блевотный на свете синтакс для асинка, который как то ниоч сочетается код как значение 2) если фор кастится понятным образом и имеет функцию превращать вложенную структуру в плоскую, то задач асинка запутывать читателя
Про стеклесс, думаю уже все всё рассказали, включая scala-async. А стекфул полноценно невозможно реализовать без поддержки рантайма, да. Но как квази-стекфул в zio и cats-effect есть свой специальный трейсинг
Т.е. с неблокирующим ожиданием всё хорошо, собственно скала потому и привлекала народ в течение истории, что легковесная конкаренси была в ней в хорошем состоянии в последние лет 12
Обсуждают сегодня