Подтвердить что ты не робот

Qt-программирование: более продуктивно в Python или С++?

Попытка погрузиться в Qt, но еще не сделала большого проекта с ним. В настоящее время я использую Python, но я думал - что действительно лучший язык для использования в плане производительности программиста?

В большинстве сравнений между языками Python - очевидный ответ, потому что вам не нужно возиться с управлением памятью и всем этим.

Однако, с Qt, я не уверен. Он предоставляет достаточно добавленных функций для С++, которые (из того, что я могу сказать), строка кода Python примерно равна строке кода на С++ большую часть времени (исключая некоторые дополнительные вещи, такие как определения классов и компоненты структуры). Qt делает почти все управление памятью для вас до тех пор, пока вы придерживаетесь его классов, и предоставляет эквиваленты симпатичным контейнерам, которые вы найдете в Python.

Я всегда предпочитал статически типизированные языки, но по разным причинам попал на победителей Python. Однако, если производительность программиста похожа на С++, я могу вернуться назад для других преимуществ - более эффективный код и меньше зависимостей для пользователей.

Мысли?

4b9b3361

Ответ 1

Мое мнение (опробовав С++ и Python в целом и, в частности, в случае Qt): Python всегда выигрывает с точки зрения "производительности программиста" и "спокойствия". PyQt представляют Qt очень хорошо, и, следовательно, вопрос не остается "Qt с Python" или "Qt с С++", в общем случае python более продуктивен, если вы не нуждаетесь в скорости или что-то, что недоступно в python.

Лучший способ, чтобы вы могли ответить на этот вопрос, заключалось бы в том, чтобы написать простой проект сначала на С++, а затем тот же проект в python и сравнить, но это может быть смещено в сторону python, как после кодирования проекта как только вы можете легко найти его на Python, попробуйте еще один проект и сначала сделайте это в Python, а затем на С++.

Ответ 2

Если тот или другой, я бы предложил Python, несмотря на энтузиазм С++. С кодом Python вам не нужно беспокоиться о MOC, переносимости, времени сборки и т.д. Просто сравните работу, связанную с внедрением слота QT в С++ или PyQT или PySide, например. Я нахожу, что это гораздо меньше, чем боль с такими виджетами (гораздо большая производительность). Вы все равно можете вызывать код С++ из Python в случаях, когда вам нужна дополнительная производительность.

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

Ответ 3

определенно Python.

Да, люди скажут, что Python более продуктивен без причины. В некоторых ответах упоминается, что вам не нужно перекомпилировать. Я дам вам более подробную информацию.

  • Python - это один слой абстракции над С++, поэтому вы можете думать и выражать свои проекты с меньшим количеством кода. Ваша программа может работать не так быстро, но вы уверены, что быстрее выражаете код, что хотите.

  • Наиболее распространенным случаем является запуск приложения, загрузка некоторых файлов, настройка среды и открытие диалога. Там вы заметили, что кнопка не работает или где она должна быть. Теперь это тот момент, когда большинство людей закрывает приложение, связывает один слот здесь, один сигнал там... и запускает приложение, загружает файлы, настраивает... с помощью python вы просто пишете код и снова запускаете диалог, не все приложение. Я не знаю о вас, но этот тип задачи - это то, что я делаю большую часть времени с помощью Qt

  • Python дает вам то, что С++ не имеет: introspection. Вы можете изучить запущенную программу и вывести информацию о ее компонентах во время выполнения. Qt дает вам частично это. У вас есть этот уровень MOC, где мета-свойства и метаинформация могут быть присоединены к объектам Qt. Все части программы Python можно исследовать. Многие люди, отлаживающие код Python или пытающиеся понять, как это работает, пристрастились к этому по уважительной причине.

Ответ 4

С Python вам не нужно создавать свой проект. Думаю, этого достаточно для экономии времени. И привязки Pyqt потрясающие. Я определенно более эффективен с pyqt, чем с qt/С++.

Ответ 5

Если вы используете python или С++, больше зависит от приложения, которое вы создаете, а не от Qt. Если вы создаете приложение с тяжелым ресурсом и нуждаетесь в большом количестве ресурсов, таких как процессор и память, С++ будет лучше. С другой стороны, если приложение больше управляется пользовательским интерфейсом, python предоставляет множество других преимуществ с точки зрения быстрой разработки и богатых библиотек.