Bogdan (SirEdvin)
На ерланге может
И там есть защита от программистов, которые не мыслят распределенными системами?
Egor
Такие программисты пишут фронтенд
а как с распределенными системами на .NET? =)
Co(n)stantine👨‍🔬
неплохо наверн
Bogdan (SirEdvin)
Да.
Классно им)
Egor
я откровенно не шарю этот вопрос, но подозреваю что .NET программисты не особо сталкиваются с распределенными системами
Tishka17
Классно им)
Поэтому их почти нет
Egor
многопоточная - да, распределенная - не факт
Anonymous
На питоне от зомби потоков так или иначе никуда не деться
А можешь пояснить, каким образом наличие зомби зависит от языка, а конкретно от Петона?
Egor
А можешь пояснить, каким образом наличие зомби зависит от языка, а конкретно от Петона?
на сколько я понимаю, зависит прежде всего от наличия семафора и необходимости управлять блокировками
Туночка️
как быстренько посчитать кол-во пикселей опредленного цвета RGBи альфа каналом
Egor
в функциональных языках это не нужно
Egor
а в го это работает искаропки довольно таки хорошо, тогда как на питоне приходится делать много ручной работы
Туночка️
В PILLOW можно пнг файл по пикселю разобрать?
Egor
Bogdan (SirEdvin)
А в го потоки сами себя синхронизируют?
Anonymous
на сколько я понимаю, зависит прежде всего от наличия семафора и необходимости управлять блокировками
Аргумент пока так себе, бо весь функционал по управлению в петоне есть, а ентот функционал по сути апи к лоу левелу тех же юникс
Bogdan (SirEdvin)
в функциональных языках это не нужно
В функциональных языках не нужны блокировки при многопоточности?
Egor
В функциональных языках не нужны блокировки при многопоточности?
да, потому что там нет переменных в понимании нефункциональных языков
Egor
или как минимум можно их не использовать
🍁 Jaŭhien
Зомби потоки - это же когда операционная система их уже убила, но результат еще никто не получил
Egor
атомарные переменные это другое
🍁 Jaŭhien
Или вы о чем-то другом
Aragaer
нет, зомби не заблокированы
Aragaer
просто их никто не собрал
Bogdan (SirEdvin)
да, потому что там нет переменных в понимании нефункциональных языков
Ну мутабельное состояние то у вас все равно есть, пусть и не в приложении
Туночка️
Да
я не нашел
Туночка️
нашел крч
Туночка️
открыть изображение
Туночка️
и что-то в нем нарисовать
Туночка️
а как про анализировать я чот не нашел функции
Bogdan (SirEdvin)
И всякие группы операций
Tishka17
А еще есть зависимые операции
Это норм работает само
Egor
теперь выложу карты на стол и отмечу что имел довольно ограниченный опыт работы с потоками на питоне, а в остальном ориентируюсь по информации изложенной в книжке Роберта Мартина "Чистая архитектура" и теории описанной в книге Мартина Одерски про Scala
Anonymous
В общем, я пока не понял, каким боком петон имеет отношение к зомби. На моей скромной практике зомбарей чаще плюсы или си демоны плодят.
Tishka17
А мутабельное состояние у тебя ограничивается базой
Egor
на сколько я понимаю работа с акторами в принципе меняет проблематику в этом вопросе
Bogdan (SirEdvin)
Это норм работает само
Это очень зависит от того, как написать
Tishka17
Это очень зависит от того, как написать
Ну вот ты пишешь return sum(func1(), func2())
Tishka17
Что можно написать не так?
Bogdan (SirEdvin)
А мутабельное состояние у тебя ограничивается базой
И не все они умеют в транзакции, локи и блокировки
elessar
стоит ли переходить на poetry)
Tishka17
И не все они умеют в транзакции, локи и блокировки
Ну про базы в ерланге я не готов. Знаю что есть мнезия. Без подробностей
Egor
мне лично даже ограниченного опыта с gunicorn + monkey patching и greenlets хватило чтобы относиться к многопоточности на питоне как к нелюбимой жене
Bogdan (SirEdvin)
Что можно написать не так?
Внешний источник дергает две операции, второй нужны самые актуальные данные по первой
Bogdan (SirEdvin)
Это из-за патчинга вы такой злой
🍁 Jaŭhien
стоит ли переходить на poetry)
Я пользовался, мне нравилось, правда в последнее время все-равно venv юзаю или докер
Bogdan (SirEdvin)
Ну окей, func2(func1())
он дергает их по апи же.
Bogdan (SirEdvin)
Сначала одну ручку, потом другую
Tishka17
он дергает их по апи же.
Ну что там func1 и функ2 это уже другой вопрос
Tishka17
И вообще не влияет как между ними данные передаются
Bogdan (SirEdvin)
Они не передаются между ними, вторая функция берет самые свежие результы первой из бд
Tishka17
Тогда они не связанны
Tishka17
И вторая не может гарантированно взять данные, которая положила перва,
Bogdan (SirEdvin)
Тогда они не связанны
Но вторая должна дождатся самые свежие расчеты по первой, следовательно, нужно немного блокировок
Bogdan (SirEdvin)
Каких блокировок?
если выполняется первая фунция, то дождатся выполнения и потом взять свежие данные
Bogdan (SirEdvin)
Во второй функции
Egor
Там же голые трединги и мультипроцессинги
грубо говоря сравнение питоно-потоков, го-сопрограмм (горутин) и скала-акторов это сравнение между механической коробкой передач, автоматом и роботом
Tishka17
Выполняй первую функцию, а потом бери ее результаты и клади в бд и одновременно передавай во вторую
Bogdan (SirEdvin)
Не прокатит
Технически или идеологически? Технически реализуемо
Tishka17
Технически ты делаешь прям очень сложный какой-то финт
Tishka17
Не забывай, это не процедурные языки. Возможно там вообще доков нет, я не знаю.
Tishka17
По крайней мере понятия "изменяема, переменная" обычно нет
Tishka17
Есть вход и выход
Egor
мне лично даже ограниченного опыта с gunicorn + monkey patching и greenlets хватило чтобы относиться к многопоточности на питоне как к нелюбимой жене
к тому же удобоваримые питонопотоки требуют наращивание лишних абстракций, тогда как прочие решения более лаконичны)
Tishka17
Как правило нужны процессы + любой способ параллельно послать пару запросов