Size: a a a

Elm Lang сообщество разработчиков

2020 November 11

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Gleb
Мне где то сказанули что в elm часто из за иммутабилность, так как компилируется в жс, overhead
Накладные расходы у иммутабнльных структур есть. Вне зависимости от того, что там и во что компилируется
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Но реальность такова, а) это не настолько заметно, если писать илиоматичный код, и б) профиты перекрывают недостаток скорости
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Я уж молчу о том, что формошлёпство обычно в принципе не предполагает какой-то интенсивной алгоритмики
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
"для GUI — хватает", кароч
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
И повторю на всякий случай, накладные расходы на исполтзование ЧФСД не зависят то того, во что компилируется язык. А за счёт JIT часть расходов вообще нивелируется
источник

DK

Denis Krivosheev in Elm Lang сообщество разработчиков
По сравнению с тем что они делают в js для иммутабельности расходы элма вообще ерунда. Взять самый популярный immer, сначала он делает глубокую копию на которую применяются изменения... потом изменённая копия сравнивается с начальным значением и считается дифф, потом этот дифф апплается на изначальную структуру... и ничего, никто даже усом не ведёт, хвалят, премии дают
источник

AY

Alexey Yurchenko in Elm Lang сообщество разработчиков
Denis Krivosheev
По сравнению с тем что они делают в js для иммутабельности расходы элма вообще ерунда. Взять самый популярный immer, сначала он делает глубокую копию на которую применяются изменения... потом изменённая копия сравнивается с начальным значением и считается дифф, потом этот дифф апплается на изначальную структуру... и ничего, никто даже усом не ведёт, хвалят, премии дают
для тех, кому лень следить за shallow equal 🤦‍♂️
источник

G

Gleb in Elm Lang сообщество разработчиков
Ок спс
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Denis Krivosheev
По сравнению с тем что они делают в js для иммутабельности расходы элма вообще ерунда. Взять самый популярный immer, сначала он делает глубокую копию на которую применяются изменения... потом изменённая копия сравнивается с начальным значением и считается дифф, потом этот дифф апплается на изначальную структуру... и ничего, никто даже усом не ведёт, хвалят, премии дают
Но есть же нормальные либы с нормальными ЧФСД
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Эта, как её, либа со структурками из кложи — там всё по Окасаки
источник

AY

Alexey Yurchenko in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
Эта, как её, либа со структурками из кложи — там всё по Окасаки
Я плохо улавливаю смысл. Если в js делать типа
{ post | title = "new title" }
то там хватает shallowEqual
а делать какие-то глубокие апдейты уже в принципе не ок.
В чем смысл пытаться тянуть это?
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Это я не улавливаю, потому что не в курсе того, что значит этот ваш shallowEqual
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
JS умеет только копировать полностью, либо мутировать по месту
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
ЧФСД умеют в персистентность, т.е. то, что не меняется — не копируется.
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Если ваш словарик имеет пять ключей, то можно и копировать. А если это большое key-value хранилище, то копирование при каждом изменении набора ключей будет дорого обходиться
источник

AP

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

GP

Gleb Patsiia in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
JS умеет только копировать полностью, либо мутировать по месту
полностью но с сохранением ссылок для тех значений где апдейта не было, если уж упомянули Окасаки
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
> а делать какие-то глубокие апдейты уже в принципе не ок.
вкусовщина и вообще "не надо обобщать"
источник

GP

Gleb Patsiia in Elm Lang сообщество разработчиков
как раз шалоу иквал и проверит примитивы по значению, а объекты по ссылкам
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Но { post | title = "new title" } скопирует структуру post, не?
источник