169 похожих чатов

Здравствуйте. Правильно ли я понимаю, что пока что в Scala не

придумали stackful корутины (файберы) т.к. ждут project loom? (ну и stackless корутин вроде тоже нет, кажется)

Правильно ли я понимаю, что писать без callback'ов пока что можно только с пом. asnyc и await (которые макросы; из какой-то библиотеки на github)?

И вообще идиоматично ли писать в императивном стиле (напр. как в Go с горутинами, каналами и select)?

17 ответов

18 просмотров

про идиоматичность это предмет дебат, но вообще декларативно стараются Фьючи есть из встроенных абстракций, коллбеки не нужны для них (ну если хочется всегда можно офк) Хочется файберов => 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

Kirill-Grachev Автор вопроса
Grigory Pomadchin
про идиоматичность это предмет дебат, но вообще де...

Понял, спасибо. Ну, коллбеки в данном случае - это лямбды в andThen. Про cats-effects и zio не знал. Спасибо.

Kirill Grachev
Понял, спасибо. Ну, коллбеки в данном случае - эт...

andThen это и есть сиквеншал версия onComplete, они не так часто нужны 🤷‍♂️ скорее всего пригодятся map / flatMap

async await это самое худшее что когда либо пытались засунуть в скалу зс все время её существования, и хорошо что не засунули. И да, не коллбеки а лямбды.

Woof Собач
async await это самое худшее что когда либо пытали...

Чем плох асинк/эвейт? На мой взгляд куда понятнее чем for-нотация. Я бы с удовольствием затащил бы к себе, если бы была хоть одна взрослая, поддерживаемая либа.

λesha ƒomkin
Чем плох асинк/эвейт? На мой взгляд куда понятнее ...

тем что дешугарится в непрозрачные макро/рантайм штуки

Tachi Войцишевский
тем что дешугарится в непрозрачные макро/рантайм ш...

Это смотря как либа будет написана. Ни кто не мешает написать дешугаринг в мап/флатмап, на сколько я понимаю. Понятное дело с ограничениями, но тем не менее.

Tachi Войцишевский
тем что дешугарится в непрозрачные макро/рантайм ш...

ну во-первых – как Леша сказал оно может и во флатмаппы развернуться, во-вторых — а что собственно плохого в непрозрачных макро штуках? ты их используешь каждый день и не особо страдаешь, в других языках с этим проблем тоже нет

Tachi Войцишевский
Где использую? Кодеки вывести?

Линзы? Бэттер монадик фор? Шэплес (для кодеков).

λesha ƒomkin
Чем плох асинк/эвейт? На мой взгляд куда понятнее ...

1) самый блевотный на свете синтакс для асинка, который как то ниоч сочетается код как значение 2) если фор кастится понятным образом и имеет функцию превращать вложенную структуру в плоскую, то задач асинка запутывать читателя

Про стеклесс, думаю уже все всё рассказали, включая scala-async. А стекфул полноценно невозможно реализовать без поддержки рантайма, да. Но как квази-стекфул в zio и cats-effect есть свой специальный трейсинг

Kirill Grachev
Понял. Спасибо.

Т.е. с неблокирующим ожиданием всё хорошо, собственно скала потому и привлекала народ в течение истории, что легковесная конкаренси была в ней в хорошем состоянии в последние лет 12

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта