Hmm... Ein immer wieder spannendes Thema. Um es gleich vorweg zu nehmen - ich persönlich bin konsequenter Verfechter von Java. Das mag vielleicht darin begründet sein, dass Java meine erste "Hochsprache" war, und ich bisher recht wenig Berührungspunkte mit C/C++ hatte.

Wenn es aber darum geht, sich mit den Konzepten der Objektorientierung auseinanderzusetzen, was ja prinzipiell erst mal völlig unabhängig von der verwendeten Sprache ist, kann ich in der Tat auch nur zu Java raten, da vor allem die Syntax und spracheigene Konzepte wesentlich einfacher zu erlernen sind als bspw. in C++. So zumindest meine Erfahrung.

Wenn man dann OO Programmierung an sich verinnerlicht hat (und bei diesem Lernprozess kann ich nur empfehlen sich mit Literatur von bspw. T. Budd und E. Gamma auseinander zu setzen), ist immer noch Zeit sich zu entscheiden auf welche Sprache man sich dann weiter konzentriert. Alles weitere, und da unterscheiden sich die Hochsprachen alle nicht voneinander, beruht im Wesentlichen dann auf dem kennenlernen von irgendwelchen Bibliotheken, die verwendet werden um ein konkretes Ziel zu realisieren.

Natürlich gibt es viele Faktoren, die die Wahl der geeigneten Sprache beeinflussen. Performance gehört meiner Erfahrung nach inzwischen allerdings nicht mehr dazu. Da liegt es tatsächlich mehr am Entwickler als an der Sprache.

Ein ganz entscheidender Faktor ist auf jeden Fall die Motivation. Wenn eine Sprache bspw. vor dem Hintergrund einer besseren beruflichen Perspektive gelernt wird, ist einem, je nach gewünschtem Berufsbild, die Entscheidung eigentlich auch schon abgenommen worden. Interessanter Weise lassen sich die beiden Märkte B2C und B2B was die Verwendung von Sprachen für die Entwicklung angeht recht gut voneinander abgrenzen: Während Endanwender-Applikationen meist plattformspezifisch übersetzt werden, ist im B2B-Bereich inzwischen überwiegend Java im Einsatz.

Übrigens, Spiele kann man sehr wohl in Java programmieren, und zwar sowohl performant als auch ansprechend. Leider wird oft vergessen, dass es neben DirectX auch noch sowas namens OpenGL gibt... Bevor jetzt jemand aufschreit dass OpenGL eine C-Implementierung ist - wie oben erwähnt, am Ende geht es immer nur um die Verwendung der richtigen Bibliotheken