LINUX.ORG.RU

Нужен Python с многопоточностью, гуем и графиками

 


2

3

Собираюсь писать на питоне проект с использованием matplotlib, gtk (или любого другого мощного гуи где можно рисовать свой элементы) и портов. + все для вывода текста, это pango, freetype, cairo.

Немного напрягает отсутствие человеческой многопоточности. Не уверен пока насколько критично, но напрягает. Альтернатива - PyPy, но он вроде gtk не поддерживает, ска.

Кто нить не подскажет нормальную альтернативу питону с многопоточностью, гуем и либой для графиков?

Deleted
Ответ на: комментарий от RedPossum

Java/golang/c# + electron.
В первой части потоки, во второй репл и динамика. Все акты ты любишь.

неплохо, спасибо, надо будет посмотреть что умеет этот электрон

Deleted
()
Ответ на: комментарий от Norgat

Если риалтайм - то сложнее конечно, но опять же не ясно, а какая вообще нагрузка будет. И да, многопоточность в питоне реализуют запуском нескольких питонов и обменом сообщениями между ними

Нагрузка зависит от гипотетического пользователя. Нужно будет постоянно что-то читать с сети, обрабатывать, писать на диск и рисовать. 3/4 этих задач выходит I/O bound. Хотя хз на счет графиков, но думаю будет норма. То есть питон должен сиять и с простыми потоками.

многопоточность в питоне реализуют запуском нескольких питонов

Впрочем, я подумал, этого наверно будет достаточно. Спасибо за ответ.

Deleted
()
Ответ на: комментарий от Norgat

Ты говоришь, что не знаешь нужна ли тебе многопоточность или нет. Ты определись, а что тебе вообще надо?

Целью темы было выяснить, вдруг у меня перед то чего я не вижу в плане языков и технологий. Но ничего, мне порядочно тут советов дали, за что благодарю. Racket. Go + Electron. Ну и подгорело пару задниц. Уже не зря тред поднял.

Deleted
()
Ответ на: комментарий от Int64

И опять и снова: мне нравится это не аргумент! Тебе может нравиться известные продолговатые органы сосать, это не значит что меня сие интересует. Мне по прежнему интересны аргументированные позиции, может найду инструментарий объективно получше.

erfea ★★★★★
()

Кто нить не подскажет нормальную альтернативу питону с многопоточностью, гуем и либой для графиков?

С++ + Qt :)

sniper21 ★★★★★
()
Ответ на: комментарий от Deleted

С тем что Global Interpreter Lock, все треды работают по-очереди, классно а?

не все; как видно из названия, под локом работает код интерпретатора, т.е. чтобы разные потоки не могли порушить внутреннюю структуру какого-нибудь словаря к примеру.

если у тебя код будет в основном вызвать какие-нибудь сишные либы или делать i/o например, от GIL ты вряд ли пострадаешь.

меня конечно несколько удивляет такой подход, не начав ничего писать, уже решать какие-то глобальные проблемы типа «а как же быть с gil'ом, если взять питон», «а что же делать в го без дженериков и с медленным гц» и т.п. имхо, куда быстрее накидать прототип и дальше уже смотреть по ситуации.

Novel ★★★★
()
Ответ на: комментарий от Novel

Со всем согласен, ответы накидал уже выше на этой странице.

Deleted
()
Ответ на: комментарий от commagray

Справедливости ради, полторы библиотеки для имеются.

Ну с таким размахом библиотек лучше уж Rust взять

AntonyRF ★★★★
()
Ответ на: комментарий от Deleted

multiprocessing не предлагать, процессы не шарят память

Посмотри документацию на модуль то, а? Там несколько разделов о том как они как раз шарят память.

pylin ★★★★★
()
Ответ на: комментарий от Deleted

3/4 этих задач выходит I/O bound.

Тогда всё норм. Графики тоже рисуются из сишной библиотеки, которой на gil пофигу.

pawnhearts ★★★★★
()
Ответ на: комментарий от Deleted

Он реально использовался CPP на серверах EVE Online. Так что там не только на бумаге. Не очень понимаю что значит «pypy не в счет». Stacless python это патченный питон, а не какая-нибудь либа.

ryu
()

Python умеет в Qt. Там даже многопоточность есть.

anonymous
()
Ответ на: комментарий от pylin

Посмотрел, благодарю, это вы хорошо меня носом ткнули.

Deleted
()
Ответ на: комментарий от pawnhearts

Тогда всё норм. Графики тоже рисуются из сишной библиотеки, которой на gil пофигу.
рисуются из сишной библиотеки

Полезно знать, но как вы это определили? В документации и не понятно куда нужно смотреть.

Deleted
()
Ответ на: комментарий от ertgblasd

REPL в java9 завезли, JSHell называется

понял, спасибо

Ведет себя как клоун и тролль и гордися этим

У кого-то подгорело из-за того что у кого-то подгорело. Не часто такое увидишь.

Deleted
()
Ответ на: комментарий от anonymous

При чём тут pypy? Stackless python != pypy. Да, в стаклесс питон все ещё есть GIL как и в pypy. Я не говорил что это лучше pypy или что-нибудь ещё. Я просто сказал ТСу о его существовании. Ничего больше.

ryu
()

обязательно именно многопоточность с shared переменными? может, multiprocessing прокатит с shared memory для обмена?

NiTr0 ★★★★★
()

python
многопоточность
GIL

Ахах. Закапывайте.

ox55ff ★★★★★
()
Ответ на: комментарий от NiTr0

Да, пока на этом и остановился.

Deleted
()
Ответ на: комментарий от anonymous

Внезапно, у Stackless Python тот же самый GIL.

да уже сказали выше:

Stackless python != pypy. Да, в стаклесс питон все ещё есть GIL как и в pypy.

Алсо, ты маешься хернёй.

не исключено конечно

Deleted
()
Ответ на: комментарий от Deleted

Я за ответ выше: накропай прототип, после уже не будешь задавать такие вопросы ;)) И «какой язык выбрать» обязательно! выносит пару пуканов ;))

Deleted
()

Как раз для то что тебе нужно. Golang + нативные вебкиты для всех ОС. Сегодня затестил, на своей няшной Убунте, все чики-пуки на хелло ворде. Графики рисуй какой-нибудь Js библиотекой

https://github.com/zserge/webview

anonymous
()
Ответ на: комментарий от anonymous

Да на го и gtk есть, js и вебню тащить не хочу

Deleted
()
Ответ на: комментарий от erfea

Что ты имеешь ввиду? CGI?

Сходу не нагуглю, но сколько-угодно фоновый процесс на PHP запилить нормально нельзя, потому что он, сцуко, течет! Во всех реализациях(fpm, cgi, apache-модуль - похрену). Все об этом вкурсе, но всем пофиг, так как, барабанная дробь, разрабы пыха не предполагают что должны работать фоновые процессы. Грубо говоря - полез в базу, высрал текст/html/xml/whatever, закрылся. И пофиг что что-то где-то потекло - закрылся и память на бочку!

Тот факт что ты этого не видишь в fpm, например, потому что там пул процессов и они обрабатывают реквесты - не означает того, что по факту после окончания запроса вся память, выделенная одиночному реквесту тупо не прибивается. Иначе оно течет.

За детализацией этого треша и угара - в гугл.

P.S. Не буду врать о том, как обстоят дела в 7.1/7.2 - но на 5.6 и 7.0 сия шняга подтверждалась.

Не, язык в общем-то не самый плохой, но использовать его для чего окромя старого-доброго классического шаблонизатора на стероидах я бы поостерегся. Костылей и подпорок то можно подставить сколько угодно, но когда язык затачивается на что-то большее, чем шаблонизатор(привет, Perl/Python/Ruby, с другими в вебе дел не имел) - то тут и IPC не наркоманский подъедет и демоны пописать можно, да и вообще - житуха.

Говорю как бывший веб-кодер на пыхе. Соскочил с этой шняги(и с веб-кодинга вообще) - и ничуть не жалею. К счастью мои проекты были простые и никогда и не требовали от языка чего-то большего, чем «шаблонизатор на стероидах»

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 3)
Ответ на: комментарий от Pinkbyte

Вот все что ты сейчас написал, никак не отменяет того что данный инструмент использовать в тех целях, для которых использую я, прямо таки уместно. Ну срать мне с высокой колокольни будет оно течь или нет если использовать его в фоновых процессах. Мне нужна хрень которая быстро залезла в базу и занесла туда что-то или выплюнула оттуда. И по совокупности факторов, пых (и инструментарий к нему привязанный) в этих условиях мою задачу решает на отлично. Мне не нужны сранные абстракции над БД, IPC, монструозные фреймворки и т.д. Когда это будет актуально, тогда можно будет говорить об инструментах на это заточенных. У меня был один проект с активным вебом на Qt, но там это было уместно и его возможности использовались очень активно.

erfea ★★★★★
()
Ответ на: комментарий от erfea

Я наверное неточно выразился. Многие просто берут пых, потому что он распиарен и крутят на нём всякие новомодные(ага, лет 10 которым уже, да) шняги, под которые он НЕ рассчитан. А потом бегут и кричат что пых - говно.

Кто конкретно в этом виноват - сложно сказать. Потому что под эти новомодные тенденции некоторыми товарищами активно пилится ворох костылей(потому что для реализации этого всего по-человечески нужно просто менять архитектуру - получится другой язык) и заявляется что «всем всё платится»^W^W^W всё работает.

В результате имеем, по порядку: язык для веба, который не может в те фичи, в которые его пихают некоторые товарищи, привыкшие к этому в более других языках; пихателей, которые этого не понимают; ну и хейтеров: «не можешь в фичу X - ты говно, /thread».

Я вот не так давно пилил себе минипроектик. И был у меня выбор - накарябать на знакомом пыхе или взять python. И какой-нибудь микрофреймворк(шо туда, шо туда). Это при том что на питоне я только всякую консольщину писал до этого(там где баша уже мало было). И как-то так получилось, что bottle.py зашел в эту задачу на раз-два, только в путь.

Вывод? А вывод ты уже озвучил - каждой задаче, свой инструмент. Не факт что не найдется похожий - больше инструментов хороших и разных! Но если ты виртуозно владеешь микроскопом - это не повод начать забивать им гвозди. Это повод взглянуть чуть дальше своего носа и взять в руки молоток.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Я наверное неточно выразился

Лучше бы ты внимательнее читал, а то пол треда (укор не только тебе) «чукча не читатель - чукча писатель»

yyk ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.