Der Geheimtipp muss von dir kommen. Zunächteinmal mußt du dir zunächst einmal klar machen was du erreichen willst und wie umfangreich deine Projekte werden sollen. Wie Wcihtig Performance ist ...
C ist für GUI heute nicht mehr geeignet, da zu umständlich.
C++ ist für einen Einsteiger zu kompliziert. Die meisten Codes werden zwar generiet aber verwirren einen Anfänger.
VB ist eine gute Anfängersprache aber es fehlen wichtige Sprachelemente für die Objektorientierung. (Auch wenn mit .NET einiges Nachgeholt wird.)
Ideal für einen Anfänger, was das lernen angeht ist dann sicher C#
Delphi ... etc. Lass ich malaussen vor.
Java ist wie C# eine konsequent Objektorientierte Sprache mit einem breiten Anwendungsspektrum. Mit Java und Javabeans steht auch eine GUI die sehr flexibel ist. Allerdings Ist java für einen Anfänger nicht ganz so leicht zu lernen.
Bei allen Sprachen kommst du aber nicht daran vorbei dich intensiv mit den Bibliotheken auseinander zu setzen.
Soweit zum lernen
ABER
C# ist mit komplexen Aufgaben / Rechenintensiven Aufgaben schnell überfordert. Üblicherweise löst man sowas mit Hybridprogrammen die zum Teil in .NET und Maschinennaher C++ Programmierung.(DLL's in C# einbinden).
Wenn du also auf dauer was größere vor hast wirst du wohl an c++ nicht vorbeikommen.