
maier
04.12.2017
15:47:27

Slava
04.12.2017
15:48:55
древнерусский

dimcha
04.12.2017
15:54:28
древнемордорский

Alexey
04.12.2017
15:55:19
мне збс. и всей нашей команде, думаю, тоже. вполне

Google

dimcha
04.12.2017
15:56:19

Slava
04.12.2017
15:56:42
а какая разница, если тебе many to many?

dimcha
04.12.2017
15:57:30
его тоже нет ?

Azat
04.12.2017
16:12:21
как я понимаю главная притензия к руби - это медлительность интерпретатора, даже по сравнению с пхп, питонами и ноджс? или есть еще "фатальные" недостатки?

Slava
04.12.2017
16:13:35
Нет многопоточности
Ладно бы просто медленный

Marat
04.12.2017
16:14:00
У питона с жс тоже нет
Может параллельности нет? Это вот проблема да

andrey.vorobey
04.12.2017
16:15:01

Slava
04.12.2017
16:15:16
Ну ок, параллелизма нет
Да и вообще асинхронности. Вон у джса есть, да и вроде в питон завезли, не в курсе. Сайдкик не предлагать

andrey.vorobey
04.12.2017
16:16:48
в питоне тоже GIL, значит нет паралельности )
асинхрохнность что в питоне что в руби есть за счет EventMatchine (ядро на с++ написано) или tornado (но я не питонист)

Google

andrey.vorobey
04.12.2017
16:17:20
при этом паралельности добиваются за счет запуска несколько процессов )
но нода тоже вроде работает на одном процессе

Slava
04.12.2017
16:18:10

andrey.vorobey
04.12.2017
16:18:27
ну а ноду просто нах, к тому же она больше 3.4 gb не может занимать (или уже научилась?)

Slava
04.12.2017
16:19:37
у меня как у вебмакаки мерило простое: вебсокеты.
в руби их нет, просто нет. то что есть - это не для работы.
у ноды с этим все сильно лучше

andrey.vorobey
04.12.2017
16:20:00
а элексир, прости, чем не угодил?

Slava
04.12.2017
16:20:09
а где я говорил что не угодил?
зря что ли в этом чате сижу :)

andrey.vorobey
04.12.2017
16:20:38
если хочется совсем тупым быть то у go более менее с этим, но на сколько я знаю там нет решения с shared access и все равно есть необходимость mutex-ы вешать
а
точнее даже не "более менее", а хорошо

Ray
04.12.2017
16:23:00
так в go нету паралелизма ) по вашему обсуждению это "не годнота"
горутины выполняются конкурентно
разве что-то сильно поменялось после 1.7

andrey.vorobey
04.12.2017
16:25:26
ну оно умеет паралелится на ядра
и GIL'а нет
разве нет?

Ray
04.12.2017
16:26:58
да, это верно
https://www.youtube.com/watch?v=cN_DpYBzKso

Google

Ray
04.12.2017
16:28:09
этот парень кое что понимает )

Azat
04.12.2017
16:28:31
https://github.com/ruby-concurrency/concurrent-ruby как работает тогда? или это фейк, имитация?

Evgeny
04.12.2017
16:29:44
кооперативная многозадачность

andrey.vorobey
04.12.2017
16:29:50

Ray
04.12.2017
16:30:16

andrey.vorobey
04.12.2017
16:30:18
о, стопэ, у руби же есть нормальные экторы
ща
https://celluloid.io/

Evgeny
04.12.2017
16:31:36
в го контекст между горутинами переключается во время ожидания IO

andrey.vorobey
04.12.2017
16:31:54
оно точно не падает и точно не на руби написано ядро

Ray
04.12.2017
16:32:05
правда надо будет проверить что будет, если одна из горутин попадет в While: True

Ray
04.12.2017
16:32:55
повиснет все, или скедуллер вырубит по таймауту

andrey.vorobey
04.12.2017
16:33:13
гринлет-гринлетом )
зато у этого убого языка крутейший паралельный gc который вообще не тормозит )

Slava
04.12.2017
16:33:27

Ray
04.12.2017
16:33:31
так я не спорю, мне golang тоже понравился )

andrey.vorobey
04.12.2017
16:33:45

Slava
04.12.2017
16:34:17
Можно поискать пост Mike Perham'a, как он переписал сайдкик с целлулоида просто на рубишные треды
Стало значительно быстрее

Ray
04.12.2017
16:34:47
но что-то я думаю что у руби, на чем бы там не написали, так не получится - очень дорогой будет context switch

Google

andrey.vorobey
04.12.2017
16:34:57

Slava
04.12.2017
16:35:15

Ray
04.12.2017
16:36:00

Evgeny
04.12.2017
16:40:57

Ray
04.12.2017
16:41:35
потому что в пайтоне например, если использовать gevent - там если один из тредов ловит while:True - то все
вот и "минус" конкурентной многозадачности )

Dmitry
04.12.2017
16:45:56
Не надо просто так писать
Чтобы ловило
С другой стороны на питоне никто не умеет нормально писать
Многопоточные штуки

Admin
ERROR: S client not available

Dmitry
04.12.2017
16:47:02
Не знаю как там в руби, но полагаю что та же фигня
Не встречал ещё людей, которые нормально пилят семафоры и мутексы в жабах и сишарпах так, чтобы ещё и понимать что там происходит
Зато на эликсире каждый через неделю уже генсервер говнячит
И все довольны
(До понимания как это работает все так же далеко, но в эликсире это вообще не важно)

abc
04.12.2017
16:49:21
В питоне сейчас asyncio во все поля

Alex
04.12.2017
16:49:29
да в Elixir/Erlang есть готовые паттерны для многопоточной разработки

Slava
04.12.2017
16:49:48

Dmitry
04.12.2017
16:50:15

Google

Alex
04.12.2017
16:50:36
а в других языках их надо самому писать и сделать это правильно не совсем тривиальная задача

Dmitry
04.12.2017
16:51:27
У уже тут рассказывал как у меня каждые через полчаса отваливался питоновский телеграмм бот

abc
04.12.2017
16:51:58

Dmitry
04.12.2017
16:52:02
Причём умирал poll поток, а main оставался
И я вообще понятия не имел что делать там

Ray
04.12.2017
16:52:21

andrey.vorobey
04.12.2017
16:52:22

Dmitry
04.12.2017
16:52:33
Толи либу чинить, толи что
Но я в питоне не разбираюсь в многопоточность вообще

Ray
04.12.2017
16:53:05

Evgeny
04.12.2017
16:53:12
а что такого сложного в мьютексах, атомиках и кондишн переменных?

Dmitry
04.12.2017
16:53:18
Другое дело, что там есть чуваки которые делают суперпопулярные либы, и они не разбираются походу тоже

Ray
04.12.2017
16:53:29

Dmitry
04.12.2017
16:53:58

Ray
04.12.2017
16:53:58

Dmitry
04.12.2017
16:54:06
Если вы понимаете о чем я

Ray
04.12.2017
16:55:52

abc
04.12.2017
16:55:56

Dmitry
04.12.2017
16:56:03

Slava
04.12.2017
16:57:23
кто-нибудь видел этот бенчмарк? https://github.com/kostya/benchmarks
неужели по части такой работы у эликсира/эрланга все настолько печально или там просто говнокод в эликсировом скрипте?
я запускал локально, он у меня выдал вроде порядка 120 мс, но это все равно было медленнее даже рубей, не говоря уже про го и кристалы всякие
вот виновник, если что: https://github.com/kostya/benchmarks/blob/master/brainfuck2/bf.exs