• XSS.stack #1 – первый литературный журнал от юзеров форума

Почему не стоит разрабатывать настольные приложения на Python

HexHunter

floppy-диск
Пользователь
Регистрация
28.08.2024
Сообщения
9
Реакции
2
Python — один из самых популярных языков программирования, особенно среди разработчиков, занимающихся наукой о данных, веб-разработкой и автоматизацией задач. Несмотря на его широкое распространение и простоту использования, Python не является лучшим выбором для разработки настольных приложений.

Основная проблема заключается в медленной производительности. Python интерпретируется, что приводит к снижению скорости выполнения программ. Для настольных приложений, требующих высокой отзывчивости и выполнения сложных вычислительных задач, медленная производительность является критическим недостатком. Программы на Python могут демонстрировать заметные задержки в работе интерфейса или в обработке пользовательских запросов, что негативно сказывается на пользовательском опыте.

Ограниченные возможности GUI-библиотек также играют значительную роль. В Python существует несколько библиотек для создания графических интерфейсов, таких как Tkinter, PyQt и wxPython, однако они уступают по функциональности и производительности фреймворкам, предназначенным для других языков. Tkinter, например, является стандартной библиотекой для создания GUI в Python, но он обладает ограниченным набором возможностей и создает устаревшие интерфейсы. PyQt и wxPython предлагают больше функций, но их использование требует больших усилий для достижения тех же результатов, что и в других языках, таких как C# с WPF или Java с JavaFX.

Развёртывание настольных приложений, написанных на Python, сопряжено с проблемами, особенно в контексте кроссплатформенности. Python требует установки интерпретатора и всех необходимых зависимостей на устройстве пользователя. Это может вызвать проблемы совместимости, особенно если на устройстве уже установлены другие версии Python или библиотеки. Процесс развёртывания может быть более сложным и требовать дополнительных шагов для обеспечения стабильной работы приложения. Упаковка Python-приложения в один исполняемый файл с использованием PyInstaller зачастую приводит к большим размерам файлов и нестабильности.

Ограниченная поддержка многопоточности представляет собой ещё одну проблему. Глобальная блокировка интерпретатора (Global Interpreter Lock, GIL) ограничивает одновременное выполнение нескольких потоков, что может снизить производительность многопоточных приложений. Обходные пути, такие как использование многопроцессной обработки или внешних библиотек на C, усложняют разработку и не всегда эффективны. Для настольных приложений, требующих высокой параллельной обработки, таких как редакторы изображений, игры или научные приложения, это серьёзное препятствие.

Недостаток специализированных инструментов и библиотек также ограничивает возможности Python для разработки настольных приложений. В других языках программирования, таких как C# или C++, существует множество специализированных библиотек и инструментов, которые упрощают создание современных, красивых и эффективных интерфейсов. В экосистеме Python таких мощных средств для создания GUI нет, а многие популярные библиотеки, такие как PyQt, имеют ограниченные возможности для интеграции с другими технологиями, что делает разработку более сложной и продолжительной.

Создание современного настольного приложения требует интеграции с различными системными компонентами, поддержки новых стандартов, таких как работа с сенсорными экранами, интеграции с облачными сервисами и обеспечения безопасности. Языки программирования, такие как C# или Swift, предлагают обширные библиотеки и инструменты для работы с современными стандартами. Python сильно отстает в этом плане, что делает разработку, тестирование и поддержку подобных функций более сложной и ресурсозатратной.

Хотя Python можно использовать для создания кроссплатформенных приложений с помощью Kivy, это требует значительных усилий и не всегда дает удовлетворительные результаты. Многие популярные фреймворки, такие как React Native или Flutter, предлагают более эффективные решения для создания приложений, работающих на различных платформах, включая мобильные устройства. Python-приложения часто сталкиваются с проблемами производительности, адаптации интерфейса и доступа к нативным функциям устройства, что делает его менее привлекательным для разработки таких проектов.

Python является мощным инструментом для многих задач, но для разработки настольных приложений он не всегда является лучшим выбором. Медленная производительность, ограниченные возможности GUI, сложности с развёртыванием и поддержкой многопоточности, а также отсутствие специализированных инструментов и библиотек могут существенно осложнить разработку. Высокопроизводительное, современное и функциональное настольное приложение лучше разрабатывать на других языках программирования, таких как C#, C++ или Java.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ну во-первых, зачем это здесь? Какой смысл расписывать столько букв про то, что Петухон - гавно для десктопа, вместо того, чтобы написать о том, что не гавно с примерами кода. Во-вторых, это бред, существует множество декстопных приложений на Петухоне, которые работают нормально и не переживают о том, что Петухон - гавно для десктопных приложений. Забавно, но на моем личном опыте видео редактор flowblade (написанный на Петухоне) в некоторых задачах обгоняет по скорости интерфейса видео редактор kdenlive (написанный на плюсах и Qt), и при этом ни разу не сегфолтил. Парадокс бытия.
 
Ну во-первых, зачем это здесь? Какой смысл расписывать столько букв про то, что Петухон - гавно для десктопа, вместо того, чтобы написать о том, что не гавно с примерами кода. Во-вторых, это бред, существует множество декстопных приложений на Петухоне, которые работают нормально и не переживают о том, что Петухон - гавно для десктопных приложений. Забавно, но на моем личном опыте видео редактор flowblade (написанный на Петухоне) в некоторых задачах обгоняет по скорости интерфейса видео редактор kdenlive (написанный на плюсах и Qt), и при этом ни разу не сегфолтил. Парадокс бытия.
Ну, если кто-то зайдет на этот пост, я предполагаю, что он уже знает Python и умеет использовать хотя бы одну библиотеку графического интерфейса. Может ли приложение работать хорошо? да, но использовать Python не рекомендуется.

Многие люди хотят использовать Python из-за его простого синтаксиса, и я не отрицаю, что он может быть очень хорош и приносить удовлетворение. Но для сложных приложений, для графического интерфейса поверьте про Python стоит забыть.
 
Ну во-первых, зачем это здесь? Какой смысл расписывать столько букв про то, что Петухон - гавно для десктопа, вместо того, чтобы написать о том, что не гавно с примерами кода. Во-вторых, это бред, существует множество декстопных приложений на Петухоне, которые работают нормально и не переживают о том, что Петухон - гавно для десктопных приложений. Забавно, но на моем личном опыте видео редактор flowblade (написанный на Петухоне) в некоторых задачах обгоняет по скорости интерфейса видео редактор kdenlive (написанный на плюсах и Qt), и при этом ни разу не сегфолтил. Парадокс бытия.
А почему Петухон а не Питон или Пайтон ?
 
Ну, если кто-то зайдет на этот пост, я предполагаю, что он уже знает Python и умеет использовать хотя бы одну библиотеку графического интерфейса. Может ли приложение работать хорошо? да, но использовать Python не рекомендуется.

Многие люди хотят использовать Python из-за его простого синтаксиса, и я не отрицаю, что он может быть очень хорош и приносить удовлетворение. Но для сложных приложений, для графического интерфейса поверьте про Python стоит забыть.
Да чего ты распинаешься. Написал бы как есть: "Товарищь модератор, я раскачиваю свой свежерег аккаунт. Мне нужно набить сообщения, очень желательно, чтобы они выглядели полезными и создавали иллюзию эксперности. Пожалуйста не мешайте мне раскачивать аккаунт, увидимся с вами в арбитраже."
А то сидишь тут, с квадратным ебалом лицом, эксперту рассказываешь, что рекомендуется делать, а что нет. Смех.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
А почему Петухон а не Питон или Пайтон ?
Это из мема:
165382865812536640.jpg


поверьте про Python стоит забыть
"Блажен, кто верует, тепло ему на свете", или как там было?
 
Забавно, но на моем личном опыте видео редактор flowblade (написанный на Петухоне) в некоторых задачах обгоняет по скорости интерфейса видео редактор kdenlive (написанный на плюсах и Qt), и при этом ни разу не сегфолтил. Парадокс бытия.
Видимо потому, что интерфейс flowblade сделан на быстром GTK, а не жирном кьюте, и питон выступает в роли связующего звена (читай, от него скорость гуя не зависит совсем). Никакого парадокса, в общем.
 
Ну все, принимаем пополнение новорегов с ахеренными историями, которые бегут после своей первой пустой статьи в коммерческий раздел создавать ветки капсом в стиле "УСЛУГИ ПОГРОМИСТА ВРЕДОНОСОВ НА 100500 ЯЗЫКАХ ПОГРОМИРОВАНИЯ" - https://xss.pro/threads/121720/
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
Ну все, принимаем пополнение новорегов с ахеренными историями, которые бегут после своей первой пустой статьи в коммерческий раздел создавая ветки капсом в стиле "УСЛУГИ ПОГРОМИСТА НА 100500 ЯЗЫКАХ ПОГРОМИРОВАНИЯ
Не, ну может быть, это - прям такие услуги, о которых нужно кричать во всеуслышание (там же нет Петухона в списке, так что все в порядке):
91vbr5.jpg
 
Рассмотрим задачу сортировки массива из 1 миллиона случайных чисел:
  • C: 0.14 секунды
  • C++: 0.15 секунды
  • Java: 0.2 секунды
  • Go: 0.3 секунды
  • Python: 1.8 секунды

О БОЖЕ МОЙ КАК МНЕ ТРУДНО 1.8 СЕК ЖДАТЬ ПОКА ОТСОРТИРУЕТ (!) 1 МИЛЛИОН ЧИСЕЛ, АААААААААААА!!!!!
Только ради этого пошлю питон и буду дрочиться в Ассемблеры и машинный код в чистом виде.


Рассмотрим задачу чтения и записи файла размером 1 ГБ:

  • C: 0.7 секунды
  • C++: 0.8 секунды
  • Java: 1.0 секунда
  • Python: 1.2 секунды

ДА НЕТ У МЕНЯ СТОЛЬКО ВРЕМЕНИ ЧТОБЫ ЖДАТЬ 1.2сек вместо 0.7 СУКИИИИИ!


Вывод :
ТС, иди нахуй.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Рассмотрим задачу сортировки массива из 1 миллиона случайных чисел
Рассмотрим задачу чтения и записи файла размером 1 ГБ
Кстати, это хороший пример cpu-bound и io-bound задач. Я уже писал об этом несколько раз, но все задачи в программировании можно условно разделить на эти два класса. Cpu-bound задачи завязаны на скорость вычисления, условно, как быстро язык может кранчить цифорки (что-то активно вычислять). Это первый пример - сортировка чисел. Питон здесь довольно сильно проигрывает нативным языкам, и можно сказать, что Питон - не лучший выбор для cpu-bound задач (это - одна из основным причин, почему существует Julia, например). Конечно, можно использовать специализированные библиотеки для вычислений, которые быстрые, а Питон использовать, как обвязку для этих библиотек, но в общем случае, в этом классе задач Питон - не лучший выбор, я согласен с этим, его можно использовать, но нужно понимать ограничения в том, что Питон может быть существенно медленнее.

Io-bound задачи завязаны на скорость ввода/вывода, причем под вводом/выводом понимается не только консоль там, или файлы, но и сеть, межпроцессное взаимодействие, или даже пользовательский интерфейс. Так вот в этом классе задач Питон вполне себе применим, поскольку и условные Плюсы и Питон, будут одинаково долго ждать одного и того же ввода/вывода. В этом случае Питон будет медленнее несущественно, и это в большинстве случаев нормально. И на результатах времени исполнения - этот момент хорошо виден.

Ну и да, нужно выбирать инструмент под задачу, а не заранее переживать о том, что там и куда рекомендуется. Для процентов 95 десктопных приложений, я не думаю, что были бы проблемы в реализации их функционала на Питоне. Тот же, flowblade (python + gtk), или какой-нибудь orange datamining (python + pyqt), или там spyder ide (python + pyqt) - комплексные десктопные приложения, с разнообразными виджетами. Хорошо, что им никто не сказал, что Питон не рекомендуется для десктопных приложений, а то пришлось бы им на Плюсах писать в случае с Qt, или на Цэ в случае GTK и страдать с сегфолтами. Ладно, не орите, я знаю про существование QML и Vala/Genie, просто пошутил.
 
Покупаешь самый дорогой пк в твоем "Техника для дома и уюта"
@
Проводишь научные исследования скорости различных процессоров.
@
Подбираешь оптимальные температуры помещений.
@
создаешь клетку Фарадея, дабы избежать попадания радиактивной молекулы которая переключит бит.
@
монитор надо минимум 255Грц.
@
Водяное охлаждение по фундаменту, стенам, в системнике.
@
Учишь 10 лет машинный код и АСМ.
@
Ну все. Начнем работу.
@
Пишешь паленый брутер-переборщик. Он будет быстрее на 0.12 сек.
 
"Блажен, кто верует, тепло ему на свете", или как там было?
Master Baggins, did you steal it from your friend, the wizard with pointy hat?) Just kidding. Is it a Russian thing or from the Bible? John?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Is it a Russian thing or from the Bible? John?
This is from classic russian litreture, metaphoricly it means someone who belives without any evidence.
cover.jpg


ТС, иди нахуй
Как то я это пропустил мимо внимания сначала, понятно, что тут есть определенный ряд спорных вопросов к автору по поводу этой статьи, но давайте все же не будем его материть. Критика должны быть культурной, некультурная критика не воспринимается.
 
Ну все, принимаем пополнение новорегов с ахеренными историями, которые бегут после своей первой пустой статьи в коммерческий раздел создавать ветки капсом в стиле "УСЛУГИ ПОГРОМИСТА ВРЕДОНОСОВ НА 100500 ЯЗЫКАХ ПОГРОМИРОВАНИЯ" - https://xss.pro/threads/121720/
Я продаю свои услуги, как и любой другой, мне плевать, что говорят люди в этом посте; Это не изменит моего мнения
 
ChatGPT так хорошо составил текст))
Вы что-то делаете правильно и теперь это ChatGPT. Предлагаю вам сделать такой пост и перестать смешить.
 
Вы что-то делаете правильно и теперь это ChatGPT. Предлагаю вам сделать такой пост и перестать смешить.
Была такая идея попросить у модераторов перенести Вашу статью в раздел "юмор".
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх