LINUX.ORG.RU

OpenGL: Python vs C++


1

4

Поступил заказ написать за неделю приложение с шейдерами, но в общем и целом вполне выполнимое за данный срок. Клиент требует или C++ или Python. Вот и думаю, у обоих подходов есть недостатки лично для меня

Python

  • Я новичек. Писал на Python несколько раз. В то же время писал код на еще десятке ЯП, потому думаю что после прочтения парочки мануалов получится достаточно хорошо. Но не как у Python разработчика.
  • Питаю ненависть
  • Python и в Африке Python, потому под виндой нужно будет один раз запустить и удостовериться что работает
  • Производительность ЯП не имеет значение, так как все загонится в буферы в GPU и буду просто иногда дергать Draw.
  • Легко можно профорсить клиенту PyGtk, PyQt, SDL и не будет маразма с виндовыми API

C++

  • Тут качество кода будет выше. На С++ я писал много.
  • Питаю ненависть
  • Могут заставить поставить винду и писать в студии. На WinAPI o_O. Умею. Не хочу. Я бы лучше в уютном быдлолинуксе все сделал, потом пересобрал все под виндой. Даже если я так сделаю, то ядреный ад с GCC на винде, которой у меня даже еще нет.
  • Адовый dance со сборкой, жонглированием с библиотеками. Я вообще по большому счету не знаю как правильно интегрировать PyQt, PyGtk, SDL со студией.

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

Проект на недельку причем почасовый, потом «кто ты такой, давай до-свидания», потому нет времени читать сотни книжек и настраивать environment.

★★★★★

Последнее исправление: vertexua (всего исправлений: 1)

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

Я писал много OpenGL приложений. 20% на Delphi во времена томагочи, 30% на С++, 50% на Java. И Python в этом списке нет, лабки в универе на NumPy, PIL и Django не в счет. Уж больно по-индусски брать заказ на то, что никогда не делал.

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

Ну видишь, проблема - нет опыта. Если выгорит - будет опыт )

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

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

vertexua ★★★★★
() автор топика

C++ однозначно. Хотя я даже не знаю какие аргументы привести... Наверное это то, что большинство серьёзных проектов, особенно с GL - это всегда С++ , навык владения С++ нужен всегда. С++ всегда обеспечит полноценный доступ к системному уровню и достаточный набор библиотек, ну там же производительность, стабильность... Ну и да, у меня кроме этого есть личная неприязнь к Python

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

Это если long term. А я хочу сделать emerge, потом написать код а потом за час запустить под виндой. Любая настройка билда будет занимать ощутимый кусок от недели

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

Это если long term. А я хочу сделать emerge, потом написать код а потом за час запустить под виндой. Любая настройка билда будет занимать ощутимый кусок от недели

Ничего не знаю, учись писать кроссплатформенно. Это ещё один полезный навык.

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

большинство серьёзных проектов, особенно с GL - это всегда С++

пруф или не было

навык владения С++ нужен всегда

4.2

производительность, стабильность

«Производительность ЯП не имеет значение, так как все загонится в буферы в GPU и буду просто иногда дергать Draw».

есть личная неприязнь к Python

а на чем вы пишете всякую скриптоту для автоматизации?

ymn ★★★★★
()

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

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

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

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

1. Хочу срубить бабок.

2. В требованиях Python или C++.

3. Приложение - Hello World

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

на крестах то кросс-платформенно? Не смешите меня. Для каждой ос придется переписывать, это не считая процессоры, он не далеко от ассемблера ушел, собственно по этому и не умер еще.

lorovec
()

то ядреный ад с GCC на винде

4.2, c mingw нет никаких проблем (кроме, разве что, многопоточной сборки). Да и со студией все быстро настраивается.

И да, нужно держать тулчейн для кросскомпиляции в линуксе для таких случаев.

C++ ... Питаю ненависть

Почему? В Qt, например, C++ очень удобный и приятный.

И да, если заказчик заставляет писать на WinAPI, то его надо слать лесом без раздумий.

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

на крестах то кросс-платформенно? Не смешите меня. Для каждой ос придется переписывать, это не считая процессоры, он не далеко от ассемблера ушел, собственно по этому и не умер еще.

Так толсто, что даже слов нет.

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

4.2, c mingw нет никаких проблем (кроме, разве что, многопоточной сборки). Да и со студией все быстро настраивается.

Все равно я на сделаю это очень быстро.

И да, нужно держать тулчейн для кросскомпиляции в линуксе для таких случаев.

Это читерство может быть еще дольше заводиться

Почему? В Qt, например, C++ очень удобный и приятный.

Я бы предпочел Gtkmm

И да, если заказчик заставляет писать на WinAPI, то его надо слать лесом без раздумий.

Согласен, но зато искаропки MSVS C++ Express + Platform SDK и все работает. Но это для очень голых приложений. Если надо больше, то либы, либы и либы

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

пруф или не было

Ну да, субъективно, если сможете сделать анализ всех «серьёзных проектов на OpenGL», то флаг вам в руки.

4.2

Ладно, конечно кухарке С++ не нужен, можешь урвать с меня штраф.

а на чем вы пишете всякую скриптоту для автоматизации?

Смотря что, зачастую хватает bash.

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

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

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

на крестах то кросс-платформенно? Не смешите меня. Для каждой ос придется переписывать, это не считая процессоры, он не далеко от ассемблера ушел, собственно по этому и не умер еще.

это не так сложно в случае с OpenGL

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

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

не соглащусь.

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

Python - не умею писать, потому долго C++ - не умею писать, потому долго

можно я перефразирую?

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

Вообще как бы тс про шейдеры, а там и кресты нафиг не нужны, там свой язык. Я так понял тулсет ему нужно либо на крестах либо на питоне, а раз тулсет то кресты это ад, кресты давно уже трупным запахом веят, живы только изза хрени всякой с десктопом не связанной, без боста голые кресты это ..., гхм даже не знаю с чем сравнить, вообщем неудобны по сегодняшним меркам, вот тупо возьмем задачу перевести int в string, в сишарпе это решается готовым методом, в голых крестах придется городить развратную груповуху... Это 21 век по вашему?

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

удобен для микроконтроллеров и прочей хрени

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

ymn ★★★★★
()

QtCreator + C++, Qt вроде как умеет OpenGL виджеты из коробки.

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

В крестах придется извращаться

string str = std::to_string(number);

пфф

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

C++ - геморное поделие

не умеете готовить, или использовали не по назначению, что гораздо более вероятно

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

факт в том, что написать на крестах пулучится с сотней библиотек, без них кресты подходят лишь для сравнения 2>0, все, на этом его функционал заканчивается, ха ха, преувиличиваю но примерно так оно и есть, не одного не видел еще, кто бы кресты без того же боста юзал.

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

факт в том, что написать на крестах пулучится с сотней библиотек, без них кресты подходят лишь для сравнения 2>0, все, на этом его функционал заканчивается, ха ха, преувиличиваю но примерно так оно и есть, не одного не видел еще, кто бы кресты без того же боста юзал.

Ну так это хорошо же, наличие библиотек же =) Думаешь в питоне по-другому?

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

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

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

факт в том, что написать на крестах пулучится с сотней библиотек,

а я только вчера взяв две библиотеки наваял людям сервер под специфический web-сервис размером в 800Кб (статично) и под три платформы, не пишите о том, в чем не разбираетесь

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

на десктопе им делать нечего с учетом эволюции.

на десктопах до сих рулят С, ObjC и С++, их уже давно хоронят, все никак не могут похоронить

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