Natürlich sind C# oder Java simpler für Anfänger. Wichtig, das ist meine Meinung bevor ich hier was losbreche. Aber so wie du das schreibst kommt es mir so vor als wenn du dich nie wirklich lange mit C# oder Java auseinander gesetzt hast. C++ hat zum Beispiel die Header Dateien bei denen man ein bisschen aufpassen muss. Klar ist das eine Sache die sich nach einer Zeit einstellt und man weiß wie man damit umgeht, aber einfacher macht es den Anfang nicht. Dann kommen die Zeiger und Referenzen dazu. Die meisten Anfänger erwarten eigentlich eh dass Objekte als Referenz übergeben werden. Das Verhalten verwundert da oft. Dann müssen Zeiger erst mal verstanden werden. An sich sind sie ja überhaupt nicht schwer, aber das kommt halt alles auf den Packen drauf den man eh schon zu tragen hat. Dann kommen noch Templates dazu, die Generics auch nachstehen. Garbage Collection ist auch nicht vorhanden und hier sehe ich auch wieder Mögliche Fehler nicht nur für Anfänger, aber besonders für diese, da die es nicht gewohnt sind auf delete etc zu achten. Klar gibt es da intelligente Zeiger, aber das ist wieder ein Stück mehr was der Einsteiger verstehen muss. Da könnte man jetzt noch länger so weiter aufzählen.
Das Problem ist an sich einfach, dass C++ eine sehr technische Sprache ist. C++ hat seine Berechtigung, aber für Anfänger ist es halt anstrengender.
Du sagst ja selber, dass der Anfang für den der C++ lernt aufwändiger ist. Du sagst aber auch, dass man bei C# und Java später dass Problem hat, nicht genau zu wissen was passiert und warum. Du hast es etwas anders ausgedrückt aber in etwa so war es das was du gesagt hast. Das ist quatsch. Wenn du mit der Sprache nicht viel zu tun gehabt hast und speziell wenn du vorher C++ gewohnt warst, wo du das Verhalten eh vorgeben musst, dann wundern dich einige Sachen in diesen Sprachen vielleicht. Wenn du damit aber ein bisschen gearbeitest hast pendelt sich das sehr schnell ein und du weißt wie sich die Sprache verhält. ungewöhnlich ist da eigentlich auch nichts. Das Problem ist halt höchstens, dass man C++ kennt und diese Sprache sich in einigen dingen anders verhält. Wenn man die eine Sprache kann ist es dann trotzdem kein Problem die andere zu lernen und auch zu verstehen. Aber sie Verhalten sich halt in einigen Dingen anders.
Der größte Punkt der es Anfängern aber leichter macht finde ich ist die Fehlersuche. Wenn du bei C++ einen Fehler hast ist es relativ egal welche IDE du benutzt. Die Fehlermeldungen sind teilweise doch recht kryptisch und ungenau. Oft werden Fehler in falschen Zeilen angezeigt, weil vorher schon etwas vergessen wurde. Das ist bei Java oder C# doch um einiges einfacher. Wenn man C++ länger programmiert dann weiß man natürlich hinterher was die Fehler bedeuten und kann dann darauf schließen was los ist, aber bei C# und Java sehe ich es einfacher
Das ist jetzt alles meine Meinung gewesen und soll bitte niemanden verstören. Damit möchte ich auch nicht sagen, dass man nicht C++ für den Anfang lernen soll. Es kommt immer darauf an was man möchte. Hier wurde ja auch schon geschrieben dass ein Buch direkt über C++ und Spiele recht schwierig für den Anfang ist. Ich selbst kenne das Buch von Heiko nicht aber es scheint ja von vielen gewollt zu sein. Andererseits sehe ich auch das Problem, dass viele es zu oberflächlich durcharbeiten, vermutlich weil sie einfach sehen wollen wie die "spannenden" Sachen funktionieren. Von daher kommt man um ein gutes allgemeines Buch ja kaum rum. Ob es dann danach der C++ Programmierer ist oder was auch immer ist ja erst mal egal. Da die Grundlagen in C# als Beispiel "schneller"/"einfacher" gelernt sind, kann man da schneller an das Thema heran gehen.
Möchte man jetzt alles selber machen ist C++ natürlich super. Die Sprache lohnt allgemein auf jeden Fall mal einen Blick. Aber wie ich es bei dem Threadersteller verstanden habe, möchte er in erster Linie gerne ein Spiel machen. Er interessiert sich aber auch fürs Programmieren und von daher wäre meiner Meinung nach ein GameMaker wahrscheinlich nicht die richtige Wahl. Da es aber auch erst mal mehr ums Spiel geht muss C++ aber auch nicht unbedingt sein. Und da kann er sich es dann ja auch einfacher machen.
Meine Meinung alles und jetzt kann der Flamewar starten. Los
edit: Und dass C++ für die Spieleprogrammierung die gefragteste Sprache ist kann man so auch nicht sagen. Das wandelt sich mittlerweile auch immer mehr. Früher war es mal so weil es auf die Performance angekommen ist. Mittlerweile ziehen andere Sprachen da mehr oder weniger gleich. Zum Teil wird dann auf Engines gesetzt die eigene Scriptsprachen haben. Viele Spiele sind mittlerweile auf Smartphones und da wird wohl auch eher selten mit C++ gearbeitet. Also sowas in den Raum zu werfen halte ich für falsch