Vladislav
Vladislav
у него там были права вроде
Крылатый
Я поэтому сначала некоторые вещи на идрисе пишу, потому что там obvious proof search есть и тоталити чекер.
Крылатый
А потом уже можно на хаскель перевести.
Крылатый
так и знал, Хаскель — для скучного продакшена
Крылатый
Забавноты вам)
Vasiliy
kek в Радио-Т статья Филла. 🙈
Dmitry
Vasiliy
Ахха да и 15к строк кода легаси
Ayrat
Вот значит как.
https://habr.com/ru/company/oleg-bunin/blog/472386/
Прочитайте пожалуйста. И цените что имеете.
Ayrat
@DogeShibu это мрак!
Ilya
/me прочитал первый абзац первого пункта и завернулся в уютный сишарп.
Ilya
Ой, там ещё и код есть.
Vladislav
@atsapura @Dolfik го в пятницу вечером посидим
Roman
погнале
Ayrat
А вы чо, все в Питере?
Roman
ну я да. За других говорить не буду!
Vladislav
Vasily
Vasily
Напоминает бессмертное "сколько нужно программистов, чтобы вкрутить лампочку"
Shub
Nikolay
Nikolay
За ФП позатирать
Анна
Да, можно
Я чот пропустила, когда ты в Питер перебрался 🤔
Nikolay
Nikolay
Погостить
Doge
@DogeShibu это мрак!
А где там мрак?
На каком-нибудь гопаке или просто Async будет точно так же
Doge
Shub
А где там мрак?
На каком-нибудь гопаке или просто Async будет точно так же
[S, R <: State[S], E]: MonadState[ZIO[R, E, ?], S] - ну вот например, хрестоматийный пример астронавтики. я, например, не знаю, как эти люди дышат, википедия говорит, что на тех высотах кислород только в следовых количествах
Ayrat
Да, это пиздец
Shub
Экземпляр теперь определен глобально для любой среды, которая поддерживает хотя бы State[S]. - "глокая куздра штеко будланула". синтаксически корректное предложение с нулевой семантикой
Doge
ну про вообще. Этот код слишком слишком слишком абстрактный
В первом примере, да, абстрактно.
Потому что это обобщенная реализация MonadState для тех, кто не хочет трансформеров, пишется один раз и используется дальше везде.
В остальных я как-то особой абстрактности относительно даже тех же async'ов не вижу.
Ayrat
Ну, на нет и суда нет :D
Doge
[S, R <: State[S], E]: MonadState[ZIO[R, E, ?], S] - ну вот например, хрестоматийный пример астронавтики. я, например, не знаю, как эти люди дышат, википедия говорит, что на тех высотах кислород только в следовых количествах
Что здесь такого?
Определяем инстанс MonadState[...] для любых типов S, R, E, где R - подтип State[S]
Doge
Но да, перевод в статье вообще атас
Doge
Я что-то не во что кроме кода не вчитывался, а текст там жуть
Vasiliy
Не, про F# там было минимально. Ведущие сказали, что ожидали сурового анализа кода, а оказалось что статья про жизнь, и про то что Филл хочет в бар сходить :D
Doge
Shub
Ayrat
Ayrat
Уже лет 5 пишу хайли конкарент код со всякими изъебами как в статье.
Кстати гопак отлично решает все эти проблемы используя механизмы дотнета
Но вот пришёл ДеГоуз и говорит что без стапятидесяти тайп параметров теперь нельзя описать свич от тредпула до UI
Ayrat
а в это время гопак как ни в чём не бывало свичится между своими шедулерами на лету и умеет делать всякие хитрости с UI тредом
Ayrat
да, он не ядерно полиморфный и я не могу заменить гопак на Task
Doge
двойная вложенность параметров типов не смущает?
В каком конкретно месте?
R <: State[S] - это скаловский способ записи where R : State<S>
MonadState[ZIO[R, E, ?], S] - это обычная запись с HKT.
В котах было бы MonadState[IO, S] (но в котах и такой трюк делался бы чуть по другому)
Doge
Ayrat
Кстати, у меня дежавю
лет 5 назад все носились с паттерном РЕПОЗИТОРИЙ чтобы максимально абстрагироваться от конкретной ДБ и при случае мигрировать безболезненно
Ayrat
никому не пригодилось, я уверен
Igor
Vasiliy
До Фила не знаю, но он на F# переписал.
Ayrat
Doge
И чуть разный дизайн
Ayrat
Пока что, вот так сбоку если смотреть, то польза как от разных БД. Ты выбираешь одну для конкретной задачи и её пользуешь от начала до конца проекта.
Проще переписать проект, чем двигло БД на лету поменять
Doge
Ayrat
так и тут, выбираешь тул - асинки F#, гопаковские джобы, сишарпные таски, мониксовые таски, скаловские футуры, джавовские мразотные комплитаблы или зио
Ayrat
и НЕ свичишь их никогда, потому что не надо
Ayrat
Ayrat
заставляют эту всю копипасту типов тащить
Doge
Ayrat
Не заставляют.
Ну я тут недавно скидывал какое-то поделие на http4s на zio, там строка с типами в экран не помещалась
Ayrat
а http4s это уже прикладная либа НАД зио, которая НАД котами
Ayrat
а вся эта типо срань в клиентском коде, а не в либе
Doge
Doge
Ну и да, это все равно что шарповая регистрация зависимостей, там всегда так будет
Ayrat
хороший дизайн чо
Stanisλav
Doge
Doge
То что тот автор накрутил там кучу всего, это его проблема