Aber für mich ist eine Programmiersprache kein Hammer oder Schraubendreher, der je nach Nagel oder Schraube ausgewählt werden muss. Es ist ein Werkzeug, welches sich in das "verwandelt", was ich gerade benötigst.
Genau das ist der Denkfehler. Einen Hammer kann ich zwar, wenn es sein muss, dafür verwenden eine Schraube in die Wand zu bekommen, aber ich werde ihn niemals als Wasserwaage benutzen können.
Wenn du einen Mikrocontroller programmierst, dann wirst du mit Java oder C# nicht weit kommen, sondern musst eben auf C(++) zurückgreifen.
Lange Rede kurzer Sinn: Die meisten Programmiersprachen lassen sich am besten für einige bestimmte Zwecke verwenden, sind aber in anderen Gebieten völlig fehl am Platz.
Was den Mehraufwand angeht: Bleiben wir mal beim Mikrocontroller: Wenn du den in Java/C# programmieren willst, dann musst du erst einmal in C eine VM für diese Sprache schreiben, die dann auf dem Mikrocontroller läuft, die dann deinen Code ausführen kann. Ist zwar möglich, aber eben deutlich mehr Aufwand, als einfach den Controller direkt mit C zu programmieren.