Цитата(quarz @ Aug 26 2016, 21:18)

Код на С++ лучше структурирован - а значит легче для понимания.
Думаю, сам по себе C++ не делает код структурированным. Структурированным его делает разработчик, если знает как.
Потребовалось мне однажды поправить чужой проект для сравнительно небольшого устройства.
Автор, вдохновленный передовыми возможностями ООП, напихал в суперкласс кучу всяких разностей, предполагая, что будет тыща версий устройств и все это когда-то кому-то пригодится.
Однако предположение за 15 лет так и не оправдалось, устройство просуществовало в одном варианте со всеми избыточными наворотами кода.
После прорубания через заросли исходников, выяснилось, что весь код умещается на пару читабельных экранов без нагромождений ООП.
Цитата(quarz @ Aug 26 2016, 21:18)

Но если это программа для прибора с датчиками, протоколами, алгоритмами и конечными автоматами - С++ будет намного эффективнее.
Это скользкая оценка. Как, например, измерить эффективность языка программирования? И насколько это "намного" эффективнее?
Цитата(AlexandrY @ Aug 26 2016, 21:31)

Вот гарантию даю, я скобочками, отступами, раскраской и подбором имён сделаю код на С-и красивее вашего.
У меня возникают похожие мысли.
Цитата(quarz @ Aug 26 2016, 21:43)

Чем больше программа, тем эффективнее в ней будет применение высокоуровнего языка. Это - факт.
А если на заключительном этапе разработки в базовом классе обнаружен баг и его исправление затронет все производные от него структуры с последующим затратным тестированием?
Будет ли это эффективно?
По поводу объемов кода...
Читал я об использовании несколько лукавого критерия "количество строк кода" при оценке целесообразности применения C или C++ для конкретного проекта:
- до 10 000 применять C;
- от 10 000 до 100 000 возможны варианты C/C++;
- от 100 000 применять C++.
Мои личные ощущения в целом согласуются с таким подходом.
Для написания математического ядра или эмбеддерства мои проекты не вылазили за 20 000 строк, поэтому стойкой потребности в языке с развитыми средствами ООП не возникало.
Периодически заглядываю в исходники модулей ядра и дровишек для Linux и тоже в основном все понятно в чужом коде на чистом C.
Явное и естественное желание использовать ООП возникло при обдумывании GUI оберток, где все может меняться налету, наследоваться, бегать, прыгать, скакать и масштабироваться.
В более низкоуровневой области использование ООП напрашивается при описании хитровывернутых протоколов с кучей настроек, режимов и свистелок.