Я не совсем уверен в том, как работает C / C ++ при определенных обстоятельствах, особенно когда речь идет о простом и эффективном подходе к математике, я не знаю, как это объяснить, так как я научился сам только на других 2 языка: Python и Java (и другие языки для мира www, такие как html, js, php и т. Д. И т. Д.), И все они действительно отличаются от C ++, потому что они спроектированы.
Что мне не нравится, так это, вероятно, сочетание между синтаксисом и производительностью, например, C ++ изначально не предлагает поддержки матриц или векторов, все сводится к двойным и плавающим значениям, и вам всегда нужно следить за тем, что вы предполагаете вы делаете это из-за двоичной арифметики, которая иногда может дать вам неожиданные результаты, и поскольку ваша матрица не является примитивным типом, она обрабатывается как любой другой пользовательский класс без какой-либо конкретной оптимизации по математике, даже если это «математика», а иногда она может быть оптимизированным.
Я, наверное, повторюсь, но, поскольку C ++ — это единственный из известных мне скомпилированных языков, который подходит для некоторых видов исполнения, я не могу действительно сравнить то, что он предлагает, с чем-то другим, но некоторые аспекты мира C ++ громоздки и не действительно сформированный таким образом, чтобы они могли соответствовать моим потребностям, это, вероятно, лучший язык для создания движка и большая часть моего приложения, но я был бы признателен за несколько советов о том, какой язык может быть идеальным компаньоном в 3D-приложении и в основном, приложение с большим количеством математики.
Я не убежден в твоей мысли.
По поводу математической части: делать это на нативном C ++ громоздко, я в это верю. Тем не менее, есть много доступных библиотек, которые помогут вам выполнять математику таким образом, чтобы это было эффективно как в разработке, так и во время выполнения.
Например, посмотрите на Собственная библиотека. Eigen интенсивно использует шаблоны и оптимизацию компилятора, чтобы получить максимальную отдачу от вашей математики. Мне еще предстоит найти большой потенциал оптимизации (ну, вы всегда можете получить немного, используя специфичную для процессора оптимизацию, такую как BLAS, но это можно сделать и с помощью Eigen).
Я не эксперт по 3D-части, хотя.
Ни один язык не предлагает все функции, которые могут вам понадобиться. Для этого и нужны библиотеки. Вы должны быть в состоянии найти подходящую библиотеку для большинства проблем, с которыми вы столкнетесь в C ++.
Насчет синтаксических трудностей: я не знаю, как далеко вы зарылись в C ++. Каждый день я изучаю что-то новое — вещи, которые раньше занимали у меня 10 строк кода, когда я начинал изучать, теперь можно выполнять за одну — без потери производительности или читабельности, наоборот, обычно получая большую ясность кода. Таким образом: все дело в опыте.
Других решений пока нет …