ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 июля
649426 Топик полностью
fk0, легенда (28.01.2016 10:46, просмотров: 44) ответил Evgeny_CD на А кто "на пальцах" может пояснить, отчего C++ приложения "в идеологии С++" такие большие получаются?
Потому, что вместо узкоспециализированного кода пишется универсальный. Пишется какой-нибудь класс и в нём десяток методов нужных только потенциально. Используются более универсальные алгоритмы (тот же STL, вместо контейнера написанного под данную задачу на C). Всё это требует в разы больше памяти и кода. Это не плохо, с другой стороны, ибо оставляет возможность для развития в будущем. Про шаблоны (и STL) отдельно надо сказать. Если другие языки имеют динамические типы данных, то в C++ всё статически. Нельзя написать универсальную функцию работающую с любыми типами данных. Делают шаблон. Но для каждого использования шаблона с новым типом данных генерируется новый код функции -- вот и раздувается код. Проблема даже выше, на уровне архитектуры. Архитектура тоже строится универсальной. Много ненужных прослоек на пустом месте, чёрт ногу сломит. Вместо того, чтоб напрямую в нужное API обратиться. Тоже сильно раздувает код. C++ даёт возможность и программисты её используют, одним словом. И у многих мышление такое, программирование ради программирования, нет чтоб написать в C-стиле, наделают десяток классов с запутанными связами между ними. Причём вместо современного C++ всё больше C++98 с классами. Хотя классы в больших проектах понятно зачем нужны, они насильно задают архитектуру сверху, иначе всё скатится к говнокоду.
[ZX]