Тема: C\C++
Показать сообщение отдельно
Старый 27.02.2015, 23:46   #3
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 983
Написано 390 полезных сообщений
(для 634 пользователей)
Ответ: C\C++

Про С++ что-либо конкретное сказать сложно, так как язык очень разносторонний.

Я считаю тут дело не в языке, а в том как на нём программировать. С++ так устроен что подразумевает набор конкретных методик и подходов для конкретного проекта, и в случае игр или движков эти методики часто не совпадают с теми которые написаны в книгах по введению в С++. Однако у программиста может сложиться стереотип что программировать надо так как учили с детства (как в этих книгах). Хотя например в Data Oriented Design подходе вообще подвергается критике большинство ООП методик к программированию. При этом подходы DOD удачно ложатся как на С так и на С++. Только в случае С меньше выбора и программист возможно своими усилиями может прийти к тем же выводам самостоятельно. А вот например есть интересная концепция pure function, которая формально относится к функциональным языкам (не путать с процедурными) таким как Haskell, однако эту штуку можно воспроизвести на С/С++ (ключом компилятора или эксплуатировав правило не использовать глобальные переменные и делая метод static'ом). А ещё есть варианты как на С можно программировать ООП подходом. Так что можно сделать вывод что эти языки не являются строго процедурными в случае С или строго ООП в случае С++ -- они достаточно гибкие чтобы программировать используя множество разнообразных подходов и техник.

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

Так что если спорить, то о том какие подходы программирования лучше использовать для создания игр/игровых движков, а язык уж как нибудь подстроится (или нет -- тогда просто выбираем другой язык).

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

Что касается меня то я планирую некоторые куски кода С++ попробовать переписать на С. Но это скорее эксперимент, чтобы удостовериться в некоторых деталях связанных с синтаксисом. В целом С++ более строгий язык по части типов и как следствие более надежный в этом плане.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Samodelkin за это полезное сообщение:
KCEPOKC (28.02.2015), mr.DIMAS (28.02.2015)