Size: a a a

2020 December 09

AT

Alexander Tchitchigi... in fprog_spb
Александр Гранин
Ты опять путаешь. Им не нужно использовать фри монады, когда они работают с моим фреймворком. Смотри мою картинку про уровни. Фри монады вообще не видны (ниже - зачеркнуто) выше уровня "high-level solutions". А ты говоришь - ну ведь есть же вот такой implementation detail, значит, про него нужно знать. Нет, не нужно. Вообще можно не упоминать нигде, что там фри монады внутри
Так и я не пользуюсь профункторами и ТК, когда пользуюсь оптикой. Не вижу разницы. 🤷‍♀️
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Имхо, нечто, вводящее абстракцию должно
а) давать интерфейс, которым можно пользоваться без знания кишок
б) доступ к кишкам, когда интерфейса не хватает
в) глоссарий для новой предметной области

В либах часто либо "а", либо "б". По поводу "в" ноют только те, кто не хочет в принципе пользоваться данной абстракцией.
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Запомнить с десяток терминов должно быть просто для любого программиста.
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Проверено книжками по паттернам.
источник

АГ

Александр Гранин... in fprog_spb
Andrey
ага, а потом, когда требуется чуть больше от библиотеки, приходится её форкать, т.к. её автор утверждает, что
- интерфейса хватит всем,
- ты делаешь что-то неправильно,
- а как правильно делать - не скажу,

а кишки спрятал, да.
Требуется. Одному человеку из 1000. И потому, что он делает не так, как все. Может, он делает всё неправильно, а может, у него кейс какой-то слишком специфичный. Если не предусмотрено интерфейсом, значит, не предусмотрено. И здесь можно поступить по-разному. Пересмотреть предлагаемую решением концепцию, обновить интерфейс. Или захачить по месту. Или отказаться от решения. Это всё - нормальный, естественный процесс разработки. Невозможно создать единую модель на все случаи жизни
источник

AT

Alexander Tchitchigi... in fprog_spb
Кроме того, DSL-писательством упарывались ещё Лисперы в незапамятные времена, за что их и загнобили — и не без оснований. Так что с DSL на свободных монадах у нас возникает две проблемы: математика и DSL.
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Лисперов никто не загнобил. Всем было пофиг просто
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Как всем пофиг на хаскель, например
источник

АГ

Александр Гранин... in fprog_spb
Aleksei (astynax) Pirogov
Пфф, "мост для приспособленецев" тоже не сильно понятен человеку со стороны
Это входит в область знаний старшего разработчика в определенных стеках (если ты про паттерны). И это - устоявшаяся практика в мейнстриме
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Aleksei (astynax) Pirogov
Как всем пофиг на хаскель, например
Только у лисперов и хаскелистов пичот
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Александр Гранин
Это входит в область знаний старшего разработчика в определенных стеках (если ты про паттерны). И это - устоявшаяся практика в мейнстриме
Ну вот и профункторы запомнит
источник

Y

Yuuri in fprog_spb
Aleksei (astynax) Pirogov
Только у лисперов и хаскелистов пичот
Haskell-chan: "Notice me, Industry-senpai~"
источник

K

Kir in fprog_spb
Александр Гранин
Опять же, читаешь какой-нибудь пост хаскеллиста, и там: "а теперь мы позовем функцию <такую-то>, потому что это у нас <профунктор|аппликатив|изо|whatever>". Это на первый взгляд только объяснение, а на самом деле стороннему человеку вообще не объяснение
Я согласен с тем, что заменять домен конструкциями из теорката не нужно.

Мне не нравится подход Free Foo, где Foo - язык бога.
Во-первых, я хочу иметь сумму языков и возможность составом этой суммы манипулировать. Это не бизнес-задача, это то, что мне нужно для выполнения бизнес-задач и внутреннего комфорта. Поэтому

-- reaaly fast because index-tagged!
import "fastsum" Data.Sum

kind Effs :: [* -> *] -> * -> *
type Effs fs a = Free (Sum fs) a


Ну а дальше из всех возможных языков надо устранить нехобходимость работать с продолжениями руками:
import "free" Control.Monad.Codensity
import "fastsum" Data.Sum

kind Effs :: [* -> *] -> * -> *
type Effs fs = Codensity (Free (Sum fs))


И до системы эффектов остаётся один шаг - просунуть финальную монаду во все эффекты параметром.
источник

AT

Alexander Tchitchigi... in fprog_spb
Aleksei (astynax) Pirogov
Лисперов никто не загнобил. Всем было пофиг просто
Я читал рассказы про то как было "активно пофиг", типа "Вау, как Вам удалось выплнить такой сложный проект в такие сжатые сроки?! А, Лисп, да, конечно, понятно, спасибо, до свидания."
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Александр Гранин
Это входит в область знаний старшего разработчика в определенных стеках (если ты про паттерны). И это - устоявшаяся практика в мейнстриме
Я знаю только одну устоявшуюся практику в мейнстриме — игнорировать и/или осуждать всё немейнстримовое.
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Alexander Tchitchigin
Я читал рассказы про то как было "активно пофиг", типа "Вау, как Вам удалось выплнить такой сложный проект в такие сжатые сроки?! А, Лисп, да, конечно, понятно, спасибо, до свидания."
Потому что инаково. А не потому что сложно
источник

K

Kir in fprog_spb
Александр Гранин
Внутренние механизмы в системах эффектов, возможно, и не торчат, но там начинают проявляться еще и другие проблемы дизайна
Например? Ну, кроме того, что порядок слоя обработки ошибок решает, как оно взаимодействует с эффектами.
источник

АГ

Александр Гранин... in fprog_spb
Alexander Tchitchigin
Кроме того, DSL-писательством упарывались ещё Лисперы в незапамятные времена, за что их и загнобили — и не без оснований. Так что с DSL на свободных монадах у нас возникает две проблемы: математика и DSL.
Откуда тут вообще выползло утверждение про математику, непонятно. Это желаемое за действительное. При большом желании математику вообще везде можно увидеть
источник

AP

Aleksei (astynax) Pi... in fprog_spb
Математика — набор DSL, чё
источник

Y

Yuuri in fprog_spb
Aleksei (astynax) Pirogov
Математика — набор DSL, чё
Математика — это лисп?!
источник