C et C++ sont une solution parfaitement valable. Personnellement je proposerais aussi une autre solution : Java, éventuellement en interfaçage avec C via JNI.
Java permet de concevoir facilement des GUI, des jeux, etc. La communauté est très large et la documentation abondamment disponible. Il est possible de piloter de l'électronique en appelant des fonctions natives depuis Java, pourvu qu'une API soit fournie par le fabriquant.
Si par contre, il ne s'agit pas de piloter de l'électronique à travers un ordinateur, mais d'écrire la partie logicielle embarquée dans le périphérique électronique (autrement dit, écrire le firmware), alors là il n'y a pas de réponse universelle. Dans l'absolu C ou C++ seraient les meilleures solutions, à condition qu'il existe un compilateur à destination du micro-processeur de la machine cible. Sinon, il faudra plus probablement utiliser un langage assembleur qui sera spécifique à chaque cible.