@haskellru

Страница 1369 из 1551
Leonid
25.07.2018
13:27:21
ITT меряются школами

A64m
25.07.2018
13:29:45
только мокать MonadDB замучаешься, надо что-то поконкретнее

Google
Index
25.07.2018
13:31:36
Это нормально.
все пишем в ReaderT IO, мокать ничего не нужно, так Снойман сказал

Leonid
25.07.2018
13:32:17
Ну если у тебя в ReaderT лежит рекорд функций

Александр
25.07.2018
13:33:46
Эффекты ортогональны моканию

A64m
25.07.2018
13:34:46
все пишем в ReaderT IO, мокать ничего не нужно, так Снойман сказал
тут уже можно сказать, что и ридер не нужен

Index
25.07.2018
13:35:04
я говорю как Снойман сказал, не надо спорить с умным человеком

и какое-то свое мнение или подходы придумывать, он придумал уже

Александр
25.07.2018
13:35:39
Точнее, IoC/DI

и какое-то свое мнение или подходы придумывать, он придумал уже
Я полагаю, я тоже кое-что придумал. А скорее, скомпилиррвал

Но до Сноймана, конечно, далеко

Index
25.07.2018
13:38:07
что ты там придумал, все программирование Снойман уже сделал в своих TH-макросах к Yesod, ты теперь пользуйся только

два макроса вызвал, потом ReaderT, IO, приложение готово, всё

A64m
25.07.2018
13:38:29
ну, при сноймановских представлениях о прагматичности его переход к идее "просто пишем функции из рекордов в IO ()" это только вопрос времени

Google
A64m
25.07.2018
13:39:59
так голое ио же, конечно иорефы можно, можно ни в чем себе не отказывать

Index
25.07.2018
13:40:18
ну, при сноймановских представлениях о прагматичности его переход к идее "просто пишем функции из рекордов в IO ()" это только вопрос времени
следующий логический шаг сделали ребята из Well Typed, там Duncan Coutts и Alexander Vieth сказали, мол, так и пишите, напридумывали еще что-то кроме функций и IO

рекорды, функции, IO, вперёд

если что, то это в контексте того, что IOHK нанимали FP Complete и Well Typed для консалтинга/аудита/разработки Cardano SL, и опытные господа там всё высказали

и кусками переписали

kana
25.07.2018
13:41:18
Эффекты ортогональны моканию
ну не в этом случае же

Index
25.07.2018
13:42:50
а если только рекорды и функции, без IO, то это вообще высший пилотаж

Александр
25.07.2018
13:43:50
если что, то это в контексте того, что IOHK нанимали FP Complete и Well Typed для консалтинга/аудита/разработки Cardano SL, и опытные господа там всё высказали
Я читал отчет от FP Complete. Не припомню наездов на IO. Но не исключаю, что пропустил. А правильно ли я понимаю, что это сейчас было в пику ребятам из Serokel?

Index
25.07.2018
13:44:52
во-первых наезды на IO были от WT, а не от FP Complete во-вторых я не знаю что такое "в пику"

и что "это сейчас" такое было

Александр
25.07.2018
13:46:20
Отчет от WT тогда бы хотел тоже читануть. Но да, за IO-императивщину в Haskell я бы тоже ругался

Index
25.07.2018
13:46:27
ФП какое-то, фу
они там просто сами до конца решить не могли, что считается, а что не считается за чистый код вроде если MonadFoo m, MonadBar m писать код, то там ничего его к IO не привязывает, а все равно плохо, жалуются, говорят на рекорды и функции переписать но в реальном-то мире надо к IO инстанцировать, иначе стриминга не будет

Отчет от WT тогда бы хотел тоже читануть. Но да, за IO-императивщину в Haskell я бы тоже ругался
Нет там никакого отчета, по крайней мере публичного. На GitHub только жалуются, ничего лучше не предлагают.

Евгений
25.07.2018
13:47:33
По-моему надо как в агде -- IO только в одной функции и норм

Index
25.07.2018
13:48:12
Такое работает только если код не запускать

Евгений
25.07.2018
13:49:01
Фу, ещё код запускать

Index
25.07.2018
13:49:21
Если у тебя в базе данных гигабайты лежат, и тебе обработать их надо, то ты либо пишешь логику обработки в IO, либо используешь стриминг-абстракцию (которую инстанцируешь в IO), либо пытаешься совместить чистую функцию и lazy IO (на практике никогда не работает, понятное дело, это же lazy IO)

а когда эта логика в ядре системы, то у тебя получается либо вся система в IO, либо вся система в абстрактной монаде, либо вся система без стриминга (так нельзя)

даже если концептуально можно было бы написать все чистыми функциями, в каком-то там мире с бесконечной RAM

Google
Index
25.07.2018
13:51:35
очень отвратительно было с WT работать, которые советовали одно (пишите всё чистыми функциями, не переабстрагируйте!!11), а как их до кода пускали, то использовали какие-то адские абстракции вроде IO пятой вложенности и переизобретения своего варианта mtl, и очень радовались, какие они умные и все придумали

как будто их трейнинг был не консалтить, а мешать разработке и делать так, чтобы их подольше нанимали. консалтинг мутится, баблишко крутится

Index
25.07.2018
13:53:59
у меня просто горит с WT, я высказаться хотел

Александр
25.07.2018
13:54:16
Вот так срыв покровов.

Александр
25.07.2018
14:02:28
Иначе говоря алгебраические эффекты страдают тем, что в них ты теряешь контроль над типами эффектов?
Не знаю. Знаю только, что их использование не приносит бенефитов, а боли добавляет немеряно. В условиях непрерывно изменяющихся требований и постоянного рефакторинга тасовать типы совсем неинтересно.

Index
25.07.2018
14:04:23
в то же время FP Complete в лице Сноймана кстати хорошо консалтили и все его рекомендации по делу и консистентны между собой просто у него принцип разработки в том, что написать boilerplate не страшно, писать надо код предельно тупой. ReaderT IO, и лучше TVar с STM вместо IORef код, конечно, получается, императивный, но все и так знают, что Haskell is the best imperative language, вот примерно таким его Снойман и видит

лучше так писать, чем на Java, но это не то чтобы был большой прыжок технологический на фоне Java

Александр
25.07.2018
14:05:23
TVar с STM и правда лучше

Index
25.07.2018
14:07:34
ну да, кроме трех тонн оверхеда, которые они за собой несут, но до профайлинга об этом нечего рассуждать я просто говорю, что у Сноймана есть фичи языка, которые он знает, что хорошо работают (IO, STM, ReaderT, async), и он крайне скептично относится ко всему, что в его привычный тулкит не укладывается

и возможно правильно делает, если цель поскорее хуяк-хуяк и в продакшен, а не узнать три новых факта о том, какие проблемы есть у свободных эффектов и т.д.

Pig
25.07.2018
14:16:08
Не, ну так и к успеху можно придти

Александр
25.07.2018
14:16:48
Что-то я все равно не пойму, Снойман - он хороший или плохой?

Слава
25.07.2018
14:17:13
Господа, а зайдите в расточат. Там идиотская дискуссия намечается

Александр
25.07.2018
14:17:29
Ссыль!

Обожаю идиотские дискуссии

Слава
25.07.2018
14:17:50
Люди хотят отправлять get с body и говорят, что это норм

Hot
25.07.2018
14:17:52
@rustlang_ru ?

Хотя, мб это не тот расточат.

Google
Hot
25.07.2018
14:18:05
Я хз.

Слава
25.07.2018
14:18:24
@rustlang_ru

Алексей
25.07.2018
14:19:02
Лоооооооооол тело запроса у GET

Andrei
25.07.2018
14:19:07
Люди хотят отправлять get с body и говорят, что это норм
да пусть отправляют, хоть через руки дойдёт

Алексей
25.07.2018
14:19:10
надо быть нарокманом чтобы такое придумать

Александр
25.07.2018
14:19:35
Насколько я помню, хаскельные HTTP клиенты даже не дают такое сделать

Алексей
25.07.2018
14:19:49
не только хаскельные

Alister
25.07.2018
14:19:59
тело запроса у гет может быть

но оно не стандартизировано

Hot
25.07.2018
14:20:08
Насколько я помню, хаскельный Network.HTTP не даёт делать https-запросы.

Admin
ERROR: S client not available

Alister
25.07.2018
14:20:10
потому харам

Александр
25.07.2018
14:20:22
И я точно видел вопрос на SO про это.

Index
25.07.2018
14:21:44
Что-то я все равно не пойму, Снойман - он хороший или плохой?
Он хороший, потому что консистентен в своей позиции, объясняет хорошо, вникает в проблему, т.е. консалтит грамотно Но он плохой, потому что если его много слушать, то можно из Haskell сделать функциональный Go, в том смысле, что новые фичи отторгаются в пользу проверенно работающих, даже если их видно не хватает для задачи

Алексей
25.07.2018
14:22:16
тело запроса у гет может быть
Мне вот что-то кажется, что если даже стандарт особо не запрещает тело у get, то всё равно наверняка не все веб сервера будут такое поддерживать. И не все клиенты.

Александр
25.07.2018
14:22:42
Снойман Шредингера

Index
25.07.2018
14:23:38
в смысле?

Hot
25.07.2018
14:23:39
вообще?
Вообще

Index
25.07.2018
14:23:54
типа хороший и плохой одновременно?

Google
Index
25.07.2018
14:24:21
нельзя же так людей делить

Александр
25.07.2018
14:25:56
Он не обидится :)

Index
25.07.2018
14:27:00
я вот пожаловался, например, на Alexander Vieth из Well-Typed, который консалтит не пойми как и в коде страшные вещи наворотил, но в то же время не буду отрицать, что он умный, крутые вещи время от времени придумывает (вроде https://github.com/avieth/type-lambda), и в GHC полезные contributions делает, и т.д.

хороший он или плохой?

Он не обидится :)
я просто не считаю, что можно охарактеризовать человека одной булевой переменной ну то есть можно, но такая характеристика будет совершенно бесполезной, скорее вредной

Алексей Ayaye :)
25.07.2018
14:36:29
я просто не считаю, что можно охарактеризовать человека одной булевой переменной ну то есть можно, но такая характеристика будет совершенно бесполезной, скорее вредной
я вот прочитал это и живо представил себе, как происходит каррирование человеков! мне этот ваш хаскель весь мозг сломал ?

Александр
25.07.2018
14:37:30
Вот с хаскеллистами всегда так. Как что-нибудь придумывать, так они впереди планеты всей, ворочают вещами, уровень абстракции которых не поддается описанию. А как на в продакшене, так сразу какую-то ерунду пишут неподдерживаемую

Index
25.07.2018
14:39:40
изоморфно

Leonid
25.07.2018
14:40:07
можно добавить еще конструкторов

Index
25.07.2018
14:40:24
Null

для практичности

Dmitry
25.07.2018
14:40:29
WorkButSmells

Dmitry
25.07.2018
14:40:37
Вот с хаскеллистами всегда так. Как что-нибудь придумывать, так они впереди планеты всей, ворочают вещами, уровень абстракции которых не поддается описанию. А как на в продакшене, так сразу какую-то ерунду пишут неподдерживаемую
Думаю, что специфика языка влияет. Он позволяет сделать слишком много, и люди берутся за разное, экспериментируют. Поддерживаемый код в продакшене писать не так сложно, там обычный опыт программирования применим. Просто Haskell не так популярен, хорошие подходы не так сильно распространены, пока ещё слишком много разных способов написать что-то, и не всегда понятно, какой лучше.

Pineapple
25.07.2018
14:40:39
Good | Ungood | Doubpleplusungood

Leonid
25.07.2018
14:43:59
Good | Ungood | Doubpleplusungood
UNACCEPTABLE CONDITION https://www.youtube.com/watch?v=Oqa9tKarkNA

Александр
25.07.2018
14:44:40
АЛГЕБРАИЧНО!

Index
25.07.2018
14:45:02
WorkButtSmells
улётная шутка

Alexander
25.07.2018
14:45:06
Он хороший, потому что консистентен в своей позиции, объясняет хорошо, вникает в проблему, т.е. консалтит грамотно Но он плохой, потому что если его много слушать, то можно из Haskell сделать функциональный Go, в том смысле, что новые фичи отторгаются в пользу проверенно работающих, даже если их видно не хватает для задачи
Проблема в том, что нужно как-то сохранять ограниченное количество активно используемых фич. То есть если вводится какая-то новая суперважная всем нужная фича, то какую-то старую по хорошему бы задепрекейтить. Иначе будет разрастаться контекст, а кривая обучения будет становиться всё круче.

Index
25.07.2018
14:45:07
Александр
25.07.2018
14:45:57
?

Страница 1369 из 1551