C++ Qt VS Python

Модератор: Модераторы разделов

Аватара пользователя
Ink-85
Сообщения: 222
Статус: полный привет
ОС: Mac OS, Ubuntu 8.04

C++ Qt VS Python

Сообщение Ink-85 »

Что лучше для проектирования КАД систем с 3D? Какой из языков более гибкий.
На Питоне Блендер написали (из 3D) вроде не плохо! А для кад систем что предпочтительней?
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: C++ Qt VS Python

Сообщение watashiwa_daredeska »

Блендер написали не на Питоне. Или, скажем, не только на Питоне, а может даже и не столько. Питон неплох в качестве скриптового языка в сложных системах, но писать на нем CAD, 3D... это из области сумасшествия, ИМХО.
Спасибо сказали:
Аватара пользователя
Ink-85
Сообщения: 222
Статус: полный привет
ОС: Mac OS, Ubuntu 8.04

Re: C++ Qt VS Python

Сообщение Ink-85 »

ok спасибо
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: C++ Qt VS Python

Сообщение deadhead »

[x] close
Спасибо сказали:
Аватара пользователя
Ortis
Сообщения: 117
ОС: Mandriva 2011, Kubuntu 12.04

Re: C++ Qt VS Python

Сообщение Ortis »

watashiwa_daredeska писал(а):
20.10.2009 13:36
Блендер написали не на Питоне. Или, скажем, не только на Питоне, а может даже и не столько. Питон неплох в качестве скриптового языка в сложных системах, но писать на нем CAD, 3D... это из области сумасшествия, ИМХО.


Питон есть универсальный язык программирования. Так что писать можно практически всё, что угодно. Вопрос о том, какие производительность и скорость разработки вам необходимы. Сколько народа будет писать. Какова их квалификация.

Вообще есть мнение, что для написания всего, что сложнее редактора "Блокнот", есть 1 язык -- C++. Всё остальное -- либо от незнания/неумения, либо от лени, либо по соображениям привычки. Я, впрочем, с этим мнением не согласен, что не мешает некоторым знакомым программистам на C++ считать меня дилетантом.

Если без холиваров, то оцените свои силы. На Питоне вы сможете сделать практически всё то же, что и на C++, но работать будет медленнее. А писать вы будете быстрее (плюс некоторые вещи не надо знать). Насколько -- зависит от конкретной реализации. Мне удавалось после ряда оптимизаций написать код, более эффективный чем на Delphi в 3 раза по производительности, хотя и жрущий вчетверо больше памяти (что было не критично, я специально так писал). С C++ не сравнивал, но думаю, что на C++ будет раза в 2 быстрее моего.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: C++ Qt VS Python

Сообщение watashiwa_daredeska »

Ortis писал(а):
20.10.2009 15:59
Питон есть универсальный язык программирования. Так что писать можно практически всё, что угодно.
Кто-то утверждал обратное?
Ortis писал(а):
20.10.2009 15:59
есть 1 язык -- C++. Всё остальное -- либо от незнания/неумения, либо от лени, либо по соображениям привычки
«либо от незнания/неумения, либо от лени, либо по соображениям привычки» и «есть 1 язык -- C++». На самом же деле, языков много, многие из них по своему хороши.
Ortis писал(а):
20.10.2009 15:59
оцените свои силы. На Питоне вы сможете сделать практически всё то же, что и на C++, но работать будет медленнее.
Настолько медленнее, что оцените свои силы, сможете ли дождаться завершения :)
Ortis писал(а):
20.10.2009 15:59
Мне удавалось после ряда оптимизаций написать код, более эффективный чем на Delphi в 3 раза по производительности, хотя и жрущий вчетверо больше памяти (что было не критично, я специально так писал).
Вы плохо знаете Delphi, либо это была специфическая задачка, для которой есть [почти] готовая библиотечка для Питона, и решалось всё на самом деле сишным кодом, а не питоньим. Против законов природы, все-таки, не попрешь.
Спасибо сказали:
Аватара пользователя
kosmonaFFFt
Сообщения: 183
ОС: win 7, Kubuntu 10.10

Re: C++ Qt VS Python

Сообщение kosmonaFFFt »

Если бы я решил писать на C++, обязательно заюзал бы Boost - что нить полезное там точно нашлось бы... :)
Насчет скорости python - для многих задач есть привязки к сишным(и не только) либам, плюс критичные места
можно написать на С/С++ (опять же есть boost::python для удобного взаимодействия с++ и python)...
Спасибо сказали:
Аватара пользователя
Ortis
Сообщения: 117
ОС: Mandriva 2011, Kubuntu 12.04

Re: C++ Qt VS Python

Сообщение Ortis »

watashiwa_daredeska писал(а):
20.10.2009 16:41
Ortis писал(а):
20.10.2009 15:59
Питон есть универсальный язык программирования. Так что писать можно практически всё, что угодно.
Кто-то утверждал обратное?
Ortis писал(а):
20.10.2009 15:59
есть 1 язык -- C++. Всё остальное -- либо от незнания/неумения, либо от лени, либо по соображениям привычки
«либо от незнания/неумения, либо от лени, либо по соображениям привычки» и «есть 1 язык -- C++». На самом же деле, языков много, многие из них по своему хороши.
Ortis писал(а):
20.10.2009 15:59
оцените свои силы. На Питоне вы сможете сделать практически всё то же, что и на C++, но работать будет медленнее.
Настолько медленнее, что оцените свои силы, сможете ли дождаться завершения :)
Ortis писал(а):
20.10.2009 15:59
Мне удавалось после ряда оптимизаций написать код, более эффективный чем на Delphi в 3 раза по производительности, хотя и жрущий вчетверо больше памяти (что было не критично, я специально так писал).
Вы плохо знаете Delphi, либо это была специфическая задачка, для которой есть [почти] готовая библиотечка для Питона, и решалось всё на самом деле сишным кодом, а не питоньим. Против законов природы, все-таки, не попрешь.


Задачка вполне обычная математическая, просто надо с умом использовать numpy и не плодить длинных вложенных циклов на Питоне, а пользоваться срезами массивов. Да, код на Delphi можно ещё ускорить, насколько -- не знаю, заниматься этим нет охоты.

При моём уважении к C -- он не относится к законам природы. И я не уверен, что нет языков, способных работать быстрее или таковые нельзя создать. Так, я 6 лет писал на Фортране и нередко мои программы работали быстрее аналогичных сишных.

Что касается того, что "не дождётесь завершения", то это вопрос способа написания и уровня сложости задачи, а также располагаемых ресурсов. Не пугайте человека. Крики типа "Да этот Питон 100 пудов в 600 раз медленнее C в среднем!" (читай в вашей ситуации -- ещё медленнее) -- для бедных. Просто на Питоне вы будете заниматься оптимизацией кода по скорости, а на C -- поиском утечек памяти. Что в конкретной ситуации существеннее -- не понятно.

Вы уж определитесь: у вас с одной тороны проповедь вселенской взаимной любви: "языков много и хороших", с другой вы говорите, что человек "не дождётся результата" и "законы природы", подразумевая, что среди всех равных есть некоторые, которые равнее всех других.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: C++ Qt VS Python

Сообщение watashiwa_daredeska »

Ortis писал(а):
21.10.2009 09:30
Да, код на Delphi можно ещё ускорить, насколько -- не знаю, заниматься этим нет охоты.
Применив ту же технику, что и для программы на Питоне (внешние оптимизированные библиотеки и т.п.), получим всяко не медленнее, чем на Питоне. Вопрос только в том, сколько времени занимает выполнение за пределами внешней оптимизированной либы и стоит ли выделки овчинка экономии. Судя по всему, это типичная задача, где Питон используется как glue, а основная работа делается на C.
Ortis писал(а):
21.10.2009 09:30
При моём уважении к C -- он не относится к законам природы.
Закон природы в том, что если у языка 5000% оверхед, то написать на этом языке программу, работающую столь же быстро, как и программа на языке с 20% оверхеда — нереально.
Ortis писал(а):
21.10.2009 09:30
просто надо с умом использовать numpy и не плодить длинных вложенных циклов на Питоне
А numpy — это один из особых случаев, та самая [почти] готовая библиотечка, о которой я писал выше: если задача сюда укладывается — хорошо, ибо основная работа будет делаться не на Питоне, а на C, если не укладывается — дело плохо. В результате получится, что довольно много будет написано на C. Если main() программы написан на Питоне, то это еще не значит, что программа написана на Питоне. Она может быть просто склеена на Питоне из кусочков на C. И это действительно хорошая практика.
Ortis писал(а):
21.10.2009 09:30
Вы уж определитесь: у вас с одной тороны проповедь вселенской взаимной любви: "языков много и хороших", с другой вы говорите, что человек "не дождётся результата" и "законы природы", подразумевая, что среди всех равных есть некоторые, которые равнее всех других.
Да, хороших языков много, но это не значит, что каждую задачу можно решать на каждом языке. Задачи, требующие скорости — не для Питона. Вот склеить быстродействующие куски, написанные на C, это да, про это, помимо использования его как скриптового движка, я забыл сразу явно упомянуть.
Ortis писал(а):
21.10.2009 09:30
Крики типа "Да этот Питон 100 пудов в 600 раз медленнее C в среднем!" (читай в вашей ситуации -- ещё медленнее) -- для бедных.
Он реально медленнее. Другое дело, что это не катастрофа.
Ortis писал(а):
21.10.2009 09:30
Просто на Питоне вы будете заниматься оптимизацией кода по скорости, а на C -- поиском утечек памяти. Что в конкретной ситуации существеннее -- не понятно.
Ну, в большом проекте, требовательном к скорости, скорее всего придется заниматься и тем, и другим :) Вопрос лишь в соотношении. Да, кстати, утечки памяти в Python тоже бывают. GC у него противненький. И в большом проекте с объемными сложными структурами данных с ними придется попотеть.

Ortis писал(а):
21.10.2009 09:30
Что касается того, что "не дождётесь завершения"
Там смайлик стоит :)
Спасибо сказали:
Аватара пользователя
Ortis
Сообщения: 117
ОС: Mandriva 2011, Kubuntu 12.04

Re: C++ Qt VS Python

Сообщение Ortis »

По большей части согласен.

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

PS Иногда склейки занимают очень много времени. Я отказался от Фортрана в значительной степени вследствие его неуклюжести при работе со строками, чтении и записи файлов, графопостроении. И ну и просто на Питоне удобнее, меньше мороки.
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: C++ Qt VS Python

Сообщение Stauffenberg »

Ortis писал(а):
20.10.2009 15:59
А писать вы будете быстрее (плюс некоторые вещи не надо знать)

Неправильное направление.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Ortis
Сообщения: 117
ОС: Mandriva 2011, Kubuntu 12.04

Re: C++ Qt VS Python

Сообщение Ortis »

Stauffenberg писал(а):
21.10.2009 13:21
Ortis писал(а):
20.10.2009 15:59
А писать вы будете быстрее (плюс некоторые вещи не надо знать)

Неправильное направление.


Неправильное в чём? Поясните, будьте добры.
Спасибо сказали: