Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Когда-то плюсы тоже не выделялись. Сильно выделяться они стали только после того, как нормой программирования на плюсах стало извращенное и неумеренное использование сложношаблонных конструкций, отслеживать которые гораздо труднее, чем макросы того же уровня сложности.
Не только. Например, у меня программа использует код на CUDA или что-то с тяжёлыми вычислениями на CPU. Что мне делать? Какие инструкции можно использовать? Получается, что я ставлю CUDA компилятору флаги, чтобы код собирался под пяток последних архитертур видеокарты — код распухает. Также я подключаю библиотеки от Nvidia, которые также собраны под несколько архитектур — они размером в сотни мегабайт. Аналогично для CPU: у меня серия бинарников, собранных для SSE, AVX, AVX2... Далее у меня Intel MKL, который тоже содержит в себе реализацию одних и тех же функций, оптимизированных под разные архитектуры — тоже сотни мегабайт.
Вот это всё хозяйство включается в установщик и кажется: что так много?!! Да, можно сократить объём кода на порядок, но он либо будет работать не оптимально на современном железе, либо вообще не будет работать у кучи пользователей. Теперь можно подумать, что важнее пользователю экономить память или скорость работы приложения (это ещё и батарейка ноута, его нагрев, экономия ядер на сервере)? По факту оказывается, что для экологии логичней экономить такты, а не объёмы.