Вопрос больше не в языках, а в их прикладном приложении.
Программы для ПК это одно, программы для МК другое и программы для "систем на кристалле" (жирные АРМы и прочее...) это третье.
В общем то вроде одно и то же, но у каждого раздела "своя специфика", которую надо осваивать. Различие у данных направлений в организации и составе аппаратных ресурсов самих кристаллов и того, что возле них снаружи установлено (в случае "микропроцессор на материнской плате" в составе ПК, ноута или мобилки).
Если программисту для ПК в подавляющем большинстве случаев вычитать документацию на конкретную материнскую не требуется, то тому, кто работает с самоделками на МК процесс детального изучения дата щитов никак не обойти.
Причем вплоть до управления под ассемблером.
Это конечно в случае особо сложных задач.
Типовые приложения простой унификации относительно МК начались с появлением ардуино IDE. Но тут уже также вырисовывается разделение -
работа в рамках унифицированных "платформ" и минимума "референса" Хоть и универсальная, но имеет естественные ограничения.
Работа с самостоятельной схемотехникой и полный доступ к ресурсам используемого МК уже потребует и вычитания документации и конкретики по созданию библиотек за рамками ардуиноIDE - при применении дополнительных настроек используемых в ней компиляторов/ЯВУ или даже в специализированных средах разработки.
Так что лишние споры не имеют смысла - используем в работе то, что удобно и рационально в каждом конкретном случае.
