"Восток дело тонкое, Петруха" (с)
Как программист с 20 летним стажем, из которых 10 отдано С++ (и, к сожалению, отдается... и отдается... и отдается...) - могу сказать, что он - не нужен... в 90% мест, где его пихают, по крайней мере.
В полной своей обвеске С++ избыточен. В конечных приложениях на С++ стиль того, как приходится писать на столько разный в зависимости от того, какие библиотеки ты используешь! И всеми признанных правил тут фактически нет. Разница того, как выглядит твой код, логика и, не побоюсь сказать, мышление С++ программ на столько велика... Что можно скзать, С++ НЕ ЯВЛЯЕТСЯ языком программирования, а как бы конструктором. И самое ужасное, что каждый из этого конструктора делает свой "язык С++". А у каждого ли это хорошо получится?
Не у каждого. И тут работает правило 80/20, в том смысле, что только 20% пишут действительно грамотно вещи. Все бы ничего, если бы всегда люди сами себе писали бы плохие библиотеки и сами мучились... Но постоянно приходится работать с чужими библиотеками... А там... И при отсутствии стандартов... Ну вы поняли.
Более того, когда программы обретают громозкозть, особенности С++ начинают мешать даже при очень хорошо продуманном проходе. Реально. Посмотрите на мега фреймворки класса Qt, MFC и т.д. Ни один из них под С++ не обладает тем изяществом и логичной конструкцией, как те же наборы библиотек более высокоуровневых языков вроде Java, .Net, python. Может даже вроде все хорошо, но вот тут костыль, тат приходится использовать, сям...
В то время, как С - вполне себе самодостаточный язык.
Поэтому на высоком уровне С++ проигрывает .Net, Java, python и Ко. На низком - си... Остается достаточно узкая прослойка, где со всеми наворотами С++ оказывается оптимален...
Конечно, в историческом смысле С++ сыграл огромную роль. При этом, по историческим же причинам впитал в себя много детских ошибок зори разработки (параличную работу со строками от Си, например. А работа со строками за все время программирования человечеством, как известно, оценивается экспертами, как источник 60% найденных уязвимостей)
Значит Си хороший, С++ плохой? - а вот тут и дело тонкое. Ведь С++ можно, и многие используют, как "Си с инициализацией структур" и некоторыми другими С++ введениями. Быстродействие не страдает. Например, взять классы, даже вызов функций (тут, конечно, еще дело в компиляторе, но для gcc) пока нет виртуальной таблицы функций перформанс ничем не омрачается по сравнению с Си. И при использовании такого подхода многие известные Си заморочки вроде компоновки переменных для попадания в регистр/одну страницу памяти - вполне сохраняются.
Поэтому все же, я скажу, что дело это скорее положительное, что С++ можно использовать на контроллерах. Пусть лучше будет больше возможностей. А история - отшлифует.
По поводу вычислений эффективности с 0.5 чипом... ну они невыносимо далеко от реальной жизни. Вот только за 30 минут до чтения этой темы встретился мне американский фрилансер с опытом работы hardware+программинг
час работы которого стоит 90$. Я работаю с америкой, там оно там примерно и есть. При этом один удобный дебаггер может для кого-то стоить большей "эффективности" на порядок. В общем, не занимайтесь ерундовыми теорикрафтами.