Size: a a a

2020 May 25

ŹR

Źmićer Rubinštejn in pro.elixir
Andrew Rudenko
ну и продолжая тему унификации интерфейсов: как сделать чтения файлов параллельными? изи:

(->> (io/file "/tmp")
      (file-seq)
      (filter #(.isFile %))
      (pmap #(count (line-seq (io/reader %))))
      (reduce +))
Ну видишь, пришлось поменять map на pmap
источник

AR

Andrew Rudenko in pro.elixir
Alexey Bolshakov
я думаю, им там и так хорошо
не, в эликсире / эрланге много клевого, чего в кложке нет
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Чем это отличается от Эликсира, где я меняю Stream.map на Enum.map?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Вот я в упор не вижу унификации интерфейса
источник

AR

Andrew Rudenko in pro.elixir
я поменял ОПЕРАЦИЮ, а не представление данных
источник

AB

Alexey Bolshakov in pro.elixir
Andrew Rudenko
не, в эликсире / эрланге много клевого, чего в кложке нет
я как-то слушал доклад про кложу. на FPConf. и все так хорошо и красиво. и только хеши (или как там у них мапы называются). и я прям слушаю и слушаю, и не смог у докладчика не спросить. ведь для этого замечательного языка - ерланг вм - был бы прям нативная среда. почему ж вы не в евм? но мне там как-то скучно ответили
источник

AR

Andrew Rudenko in pro.elixir
в эликсире ты всегда должен думать где у тебя описание операции, а где данных, в какой момент ты должен Stream материализовать в структуру данных
источник

LL

Lama Lover in pro.elixir
Alexey Bolshakov
я как-то слушал доклад про кложу. на FPConf. и все так хорошо и красиво. и только хеши (или как там у них мапы называются). и я прям слушаю и слушаю, и не смог у докладчика не спросить. ведь для этого замечательного языка - ерланг вм - был бы прям нативная среда. почему ж вы не в евм? но мне там как-то скучно ответили
jvm - это биснесссс, серьёзные дяди платют свои деньги за это
А beam - это для всяких задротов
источник

AB

Alexey Bolshakov in pro.elixir
мемоизация, как я понял из примеров выше с хаскелем. это инструмент для того, чтобы ты такой сидел и думал «а я вот хрен его знает, выполнится он или память сожарётъ»
источник

AB

Alexey Bolshakov in pro.elixir
Lama Lover
jvm - это биснесссс, серьёзные дяди платют свои деньги за это
А beam - это для всяких задротов
нет. там другой ответ был. но если поискать на ютубах, можно даже найти
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Andrew Rudenko
в эликсире ты всегда должен думать где у тебя описание операции, а где данных, в какой момент ты должен Stream материализовать в структуру данных
Да, но почему это плохо, если Enum.map работает с меньшими накладными расходами?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Если очень захотеть, можно вообще Flow.map прикрутить, и оно будет считать на кластере из нод
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Но я знаю что именно оно делает всегда
источник

AB

Alex Bubnov in pro.elixir
Alexey Bolshakov
я как-то слушал доклад про кложу. на FPConf. и все так хорошо и красиво. и только хеши (или как там у них мапы называются). и я прям слушаю и слушаю, и не смог у докладчика не спросить. ведь для этого замечательного языка - ерланг вм - был бы прям нативная среда. почему ж вы не в евм? но мне там как-то скучно ответили
потому что на 10000 jvm в проде приходится 1 beam?
источник

AR

Andrew Rudenko in pro.elixir
Alexey Bolshakov
я как-то слушал доклад про кложу. на FPConf. и все так хорошо и красиво. и только хеши (или как там у них мапы называются). и я прям слушаю и слушаю, и не смог у докладчика не спросить. ведь для этого замечательного языка - ерланг вм - был бы прям нативная среда. почему ж вы не в евм? но мне там как-то скучно ответили
на самом деле нет. beam и clojure достаточно противоположны

1. ну вот мы сегодня как раз обсуждаем как одну из ключевых фичей кложи не имплементировать на beam эффективно (а на jvm это несколько строк кода)
2. подход кложи к state management не имплементировать маломальськи эффективно на beam: это atom (cas сравнения) и stm
3. не говоря уж про то, что JVM позволила все перзистентные структуры заимплементировать (vector, map, set, list) на ней самой, когда в beam даже мапов не было
источник

AB

Alexey Bolshakov in pro.elixir
Źmićer Rubinštejn
Если очень захотеть, можно вообще Flow.map прикрутить, и оно будет считать на кластере из нод
ну вот, кстати, да. я на опыте разбора большого количества json как раз и строил пайпы из stream,  частично там меняя stream.map на flow.map
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Я согласен, что можно было бы сделать универсальный map filter и тыды, которые бы хавали и то и то и прокидывали дальше то что захавали.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Но в начале сделать список из файлов или ленивый генератор - я должен решать
источник

AB

Alexey Bolshakov in pro.elixir
Alex Bubnov
потому что на 10000 jvm в проде приходится 1 beam?
мне сказали «патамушта библиотеки»
источник

AB

Alex Bubnov in pro.elixir
Alexey Bolshakov
мне сказали «патамушта библиотеки»
ну суть не меняется
источник