В Embedded-мире используют С. Python для того, чтобы поддерживать мета-программирование. Система сборки — чистый Make, чем я лично очень горжусь.
Эффективность Мake просто потрясает. Если кто новый приходит в проект, он говорит: „Ну вот, сейчас я буду собирать эту прошивочку“, подключает сборку и собирается идти обедать. Не успевает повернуться, а оно уже закончилось. То есть Make не в разы, а в десятки раз быстрее соображает, что делать, а что нет. На Make удобно записать и зависимости между модулями, и размеры таблицы, исходя из хаба, страны, всякие частоты и прочее. Файлы Make простые для чтения и сложные для написания. В общем, очень его любим.
С++ не используем. Он избыточен — в данный момент нам не нужны его фичи. То же наследование с удовольствием делаем на С и даже на Make и получаем то, что надо, без всяких проблем-ромбиков. Элементарно делаем двойное наследование и прочее к ужасу джавистов, у которых это запрещено. Еще одна неудобная для нас особенность С++ — неотделимость от динамического распределения памяти при появлении/уничтожении класса. У нас ресурсы распределены на берегу до выхода в море (благодаря этому для вирусов в OS Malevich просто нет места) — на С++ это плохо поднимается. Также одна из наших гордостей — это когда вы смотрите на хаб в приложениях, там нет кнопки „Перезагрузить хаб“. А если бы там был С++... Если эта кнопка появляется, это косвенно означает, что там С++. То есть хаб устает, каждые две недели его надо перегрузить до какого-то начального состояния. Нашим хабам перезагрузка не требуется