Programme, die wirklich tief in das System/die Hardware eingreifen sollten in C gemacht werden, das soll nicht bedeuten, dass es mit anderen Sprachen nicht möglich ist, allerdings ist das in den meisten Fällen deutlich unkomfortabler
Was auf (meiner Meinung nach) keinen Fall geht sind Sprachen, die auf eine Runtime angewiesen sind (wie C# und Java), dabei kannste eig. nur über die Runtime auf die Hardware zugreifen und das ist nervtötend...
Der Mittelweg ist C++,das kann einigermaßen gut für Hardwaregeschichten verwendet werden, ist allerdings auch recht ordentlich für die Arbeit mit Windows geeignet

Letztenendes musst du selber entscheiden womit du am besten klarkommst. Java oder C# zählen zu den "neueren" Sprachen weswegen viele Neuerungen eingebaut wurden wie nen einfacherer Syntax, vor allem wenn du mit VB probleme hattest solltest du mal überlegen, ob du was anderes als C oder C++ nimmst da die Sprachen sich vom Aufbau her nicht großartig unterscheiden...
Lange Rede, kurzer Sinn: Probiers aus