Vasily
Пока я слышу некую демагогию
Vasily
И на попытки выяснить, какой в этом практический смысл, все закатывают глаза и говорят "этого стыдно не знать"
Vasily
Отсюда я делаю вывод, что происходит какая-то херня, например, подмена теплого мягким
Doge
Какие трейдофы?
scala.concurrent.Future - горячие, явное протаскивание ec повсюду. (Не советую в качестве эффекта юзать, т.к. можно отстрелить себе ноги). Не умеют в отмену. twitter Future - ленивые, но относительно сходные по дизайну c оригинальными. Умеют в отмену. monix Task - ленивые, запускаются явно через scheduler. Умеют в отмену. cats-effect IO - ленивые, умеют сами запускаться. Умеют в отмену, но плохо. ZIO - ленивые, запускаются явно. Умеют в отмену. Имеют поддержку STM. Умеют в протаскивания типизированной ошибки и окружения.
Ayrat
Это так себе опыт. Адаптеры над адаптерами адаптерами погоняют
ну подожди. Вот есть таски сишарпа, а есть асинки фшарпа. Они дружат без всяких адаптеров легко, я бы даже сказал незаметно глазу
Doge
Производительность между ними тоже отличается, но мерять производительность - это отдельное искусство.
Ayrat
Тебе явно надо создать таск из асинка и наоборот.
я могу имплисит каст нарисовать (сишарп же) и дело с концом. В нём я буду запускать асинк и возвращать таск
Ayrat
в фшарпе я могу расширить асинкБилдер чтобы он в let! принимал таски нативно или просто пользоваться Async.AwaitTask
Ayrat
если ты это называешь адаптером
Ayrat
то так можно любой экстеншн метод называть адаптером
Doge
то так можно любой экстеншн метод называть адаптером
Ну более-менее так и есть. Если мне нужно самому явно произвести какое-то действие, чтобы сконвертировать их. Даже если это будет вызов extensions метода. К тому же я вот не уверен, что это было бы разумно в скаловском зоопарке футуров.
Vasily
Во, ключевое слово "зоопарк"
Vasily
Попахивает SJW
Vasily
И прочей демократией
Doge
Во, ключевое слово "зоопарк"
Ну он более-менее обьективно возник, т.к. внутренние дизайны у всех этих либ ощутимо отличаются, а scala.concurrent.Future не нравится никому, кроме его автора.
Vasily
Условно, проблема, как я понимаю, в проблемах отделить описание конкарренси от контекста выполнения
Vasily
Т.е. типа написал один раз - работает типа на любых примитивах
Vasily
Звучит как пиздеж и провокация
Doge
Звучит как пиздеж и провокация
Но более-менее работает.
Vasily
Почему?
Ну потому что это привнесение дополнительной сложности
Vasily
Туда, где она нафиг не впилась
Anonymous
Ну потому что это привнесение дополнительной сложности
С каких пор абстрагирование стало процессом усложнения?
Vasily
Т.е. я делаю модель конкарренси, потом мне надо доказать, что она целостна, непротиворечива и валидна, а потом я просыпаюсь, потому что обосрался
Vasily
Вот именно подобного рода
Vasily
Абстрагирование
Vasily
Причем, чсх, все это попытки решить извечную проблему, на каком потоке выполнить таск и в каком потоке процессить результат
Vasily
Ну вопросы, как обычно, возникают
Doge
В особенности с учётом того, что примитивы синхронизации в котоэффектах ФПшные, благо работать с ними сильно проще, чем с обычными аналогами.
Vasily
Из серии "а как часто меняется конкарренси стек в системе?"
Doge
Из серии "а как часто меняется конкарренси стек в системе?"
Ну библиотека вообще не знает с каким конкарренси стеком её будут использовать
Vasily
По факту, тот же условный билдер с квотейшном, результат которого аплаится на конкретную модель исполнения
Vasily
Развели тут, ептыть
Vasily
Построил AST, упростил, выполнил на нужных примитивах
Doge
А тут у тебя никаких ограничений подобного толка, обычные значения
Doge
Ну и хороший квотейшн подобного толка написать - это нехилая работа, причем он всё равно в итоге не будет жрать всё, что ты ожидаешь.
Doge
Примеры тех же ORM на квотейшинах это прекрасно показывают.
Vasily
вопрос, собственно, один
Doge
Оно выходит для реализации сложнее, чем все котоэффекты и их реализации вместе взятые
Vasily
Доколе скалисты будут разговаривать на наукообразном языке?
Anonymous
Из серии "а как часто меняется конкарренси стек в системе?"
Так чтобы это было возможно сначала как бы абстракции же нужны.
Anonymous
Ну вот этот убогий IScheduler на Rc NET, например.
Vasily
Эффекты
Vasily
Чо там еще у вас
Vasily
IO
Doge
Эффекты
А как это назвать по другому? Future-подобный-тип?
Vasily
стрелки
Doge
Это 3 слова вместо одного
Vasily
Ппц
Anonymous
Ну или просто тупо код переписать
Так нахуй тогда паттерны и вообще дженерики? Перепишем код без проблем.
Doge
стрелки
Стрелки - я вот даже не представляю какое им придумать другое название, чтобы оно было понимаемо сходу
Doge
IO
Что здесь научного-то?
Doge
И да, даже это все - это не научный слэнг ни в коей мере (разве кроме эффектов, но в науке под ними другое понимают), а хаскелевский слэнг.
Ayrat
датафлоу
Doge
стримы!
Не совсем, у них нет части операций, который обычно от стримов ожидаются.
Vasily
Ну вот вопрос - нахуя отгораживаться от мира терминологией?
Vasily
И потом укорять за ее незнание
Doge
И потом укорять за ее незнание
А кто укорял за незнание?
Doge
То что токсят в ПОНВе и скала основе - это проблемы этих мест, а не слэнга
Bonart
Абстрагирование
Тут в слове абсрагирование очепятка
Vasily
В общем, пока я не понял, если честно, какие это реальные проблемы решает. Какие гипотетические - я понимаю
Vasily
Но вот из реального прода - хз
Vasily
Я сомневаюсь, что зоопарк кочует по проектам в расширенном составе
Vasily
Или типа чуваку захотелось - он либу затащил?
Vasily
Плавали, знаем
Vasily
Такое лучше сразу пресекать
Doge
В общем, пока я не понял, если честно, какие это реальные проблемы решает. Какие гипотетические - я понимаю
Ну и да, если тебе хочется контроля эффектов - альтернатив рабочих всё равно нет.
Vasily
Мне вообще надо, чтобы работало обычно
Vasily
И большая часть команды могла понять, как