A64m
короче говоря, когда люди находят ФП и думают, о, буду собирать конвейеры из мапов и фильтров теперь даже не догадываются, какое адище за всем этим скрывается.
Andrey
я как раз про это хотел говорить на несостоявшемся докладе ) абстракция настолько высока, что детали реализации не рассматриваются, а в них всем известно кто )
Denis
при этом со всякими псевдофункциональными реализациями все ок
Denis
в мейнстримных языках
A64m
Denis
если не на персистентную структуру данных натягивают map
Andrey
про линк и джавастримы полагаю
Denis
rust например
Denis
думаю что и скала наверняка
Denis
и фиг знает сколько языков еще
Andrey
там совсем не ок
Denis
почему кстати не ок, если там массив/вектор под капотом?
A64m
rust например
ну вот линк ту обджектс в сишарпе считается за мейнстримную функциональщину на неперсистентной структуре (энумераторе, который мутабельный)?
Denis
Andrey
поэтому и не ок, что трансдьюсров нет и все материализуется на каждом шаге
Denis
то что не фьюзится в цепочке комбинаторов это другой вопрос
A64m
там хорошая галерея адища, и тормоза и плохая асимптотика и текучесть из-за негранулярности материализации и просто тормоза на константах, и адовые хаки на велью-типах из-за которых в фориче один и тот же элемент повторяется и т.д.
Зигохистоморфный
Andrey
ну как другой вопрос - это причина неокея
A64m
так что в целом в мейнстриме с этим еще хуже чем даже в наивных ФЯ-имплементациях, в основном от дремучести и нечитательства
A64m
про фьюжен вообще речи нет, этого почти нигде нет и там где есть работает только когда повезет
Denis
Denis
в идеальном мире структуры данных должны бы были выбираться статически оптимайзером исходя из кода, прогнозов по фьюжену и хинтов о размере структур программистом
A64m
ну и в результате разница по производительности всех этих костылей для объединения функций в конвейер в разных языках отличается на несколько десятичных порядков
Denis
но это пока только для sci-fi фантастов
Denis
A64m
да нет, лично меня шокировала 1) адовость хаков которые приходится для всего этого применять 2) размеры разницы, понятно, что какая-то разница должна была быть. 3) вообще сам дизайн спейс где столько всего и одно хуже другого (эта проблема вроде той что с рекордами)
Aliester
Aliester
только в последнем "instead of solving the problem"
кана
Раст и элм в одном ряду
A64m
инженер-восемнадцатого-века вместо инженер, таких среди программистов пока нету.
Alexander
Andrey
значит ситуация лучше чем я пессимистично полагал. но все равно не уверен в окее
Kirill
а есть какие-то чёткие критерии для окея?
Andrey
четких нет - только степень окейности. играться то и на неокейных реализациях можно
Alexander
если скала -то окей
Denis
Какой сейчас бинарный сериализатор побыстрее? У меня тут binary и он какой-то тормозной.
Leonid 🦇
если именно сериализатор то cbor/serialise или store наверно
Misha
https://hackage.haskell.org/package/serialise ?
по случайности смотрел talk Дункана про это дело
Misha
говорил, что упор был на скорость
Artyom
store или flat
Artyom
но если хочется стандартизированный формат, то serialise тоже ок
Denis
мне хочется 1) быстро 2) дженерики 3) компактно
A64m
а flat быстрый что-ли?
Artyom
по бенчмаркам быстрый
A64m
по каким бенчмаркам? Из серии репозиториев на гитхабе, где сравнения библиотек вроде все последовательности, все словари и т.д.?
Artyom
да
Denis
а покажите репу с бенчмарками?
A64m
Я бы относился к результатам этих бенчмарков с осторожностью
Leonid 🦇
В cbor были бенчи
Leonid 🦇
Store там точно был. @qnikst пилил
Artyom
https://github.com/haskell-perf/serialization
Alexander
я адаптировал для сторе и сериалайз
Alexander
они сравнимы были
Alexander
на плоских сторе выигрывал
Alexander
на деревьях цбор
Denis
надо походу store брать
Denis
он в генерики умеет?
Denis
так, умеет
A64m
store это когда 1) читать той же программой. 2) сериализуем в основном массивы стораблов но изредка что-то еще
Denis
1 это ок, по 2 - есть куча своих нерекурсивных типов, вроде особых противопоказаний нет
Denis
как по человечески можно узнать какие зависимости из зависимостей приложения, зависят от определенной либы?
Kirill
Stack dot?
Denis
подходит, спасибо
Denis
теперь осталось понять как в этой мешанине разобраться
Denis
ой да, я помню эту проблему
Denis
потом либо разрешения не хватает в png, либо софт не умеет зумить настолько сильно
Denis
надо прям дот-файл разбирать
Alexander
а постресовый бинарный протокол для copy-to уже кто-нить зопилил?
Kirill
@catamorphism там же просто перечисление связей
Denis
я через dot сразу нарисовал
Denis
там безумная лапша такая, на волосы похоже
Alexander
в .svg надеюсь?
Denis
можно и в svg наверное, если dot умеет
Denis
впрочем, с svg у меня вчера фейл был
Denis
я так и не нашел чем можно огромный svg перекрутить
Denis
никакие тулзы не справляются
Leonid 🦇