Welche Programmiersprache lernen?

3 Antworten

Ave!

Mein Ziel ist es, Spiele zu programmieren (keine Webspiele, sondern richtige). Sollte ich da C++ lernen oder weiterhin über JavaScript?

Es gibt Game-Engines, die Spiele über JavaScript ermöglichen (GDevelop, Babylon.js und viele mehr) und auch Unity und die Unreal Engine erlauben Scripts in JavaScript bis zu einem gewissen Punkt.

Dennoch würde ich davon abraten. Die I/O-Performance von JavaScript ist grandios und macht JavaScript damit zu einer guten Sprache für Websites und Server, aber wenn es um komplexe Berechnungen geht, ist JavaScript nicht heran zu ziehen.

Für komplexe und aufwändige Spiele ist nach wie vor C++ zu empfehlen. Es ist die schnellste höhere Programmiersprache und wird von den meisten Game-Engines unterstützt.

Alternativ wäre C# anzumerken. C# wird auch von den meisten Game-Engines unterstützt und ist grundsätzlich einfacher zu lernen als C++, ist aber wiederum langsamer.

Generell würde ich empfehlen das Programmieren so nah wie nötig am Maschinencode zu lernen.

Low-Level Sprachen bzw. Assembly brauchst du heute eigentlich nur noch in wenigen Einsatzbereichen und der Hirnschmalz, der hierfür notwendig ist in Relation zum Produkt lohnt sich einfach nicht.

Bei den High-Level Sprachen sind C und C++ dann die, die am nächsten am Maschinencode dran sind, deswegen empfehle ich diese auch.

Warum empfehle ich diesen Weg?

Simpel: Je mehr dir die Sprache das grundsätzliche Verständnis vom Computer und seinen Komponenten abnimmt, desto einfacher ist sie zu lernen, aber desto weniger lernst du auch eben dieses Verständnis und hast Probleme andere Sprachen zu lernen.

Beginnst du deinen Lernprozess mit einer Sprache, die dir wenig abnimmt (wie eben C++), verstehst du das große Ganze.

Mit dieser Voraussetzung kannst du dich immer mehr vom Maschinencode mit der Sprache entfernen ohne große Probleme zu haben diese zu verstehen. Wenn du C++ gemeistert hast, sind Sprachen wie C#, Java oder die ganzen Scriptsprachen (JavaScript, Python, Julia, etc.) ein Klacks zu erlernen, denn sie bringen nichts neues hinein, sondern nehmen dir viel - auf Kosten der Performance - ab.

Meisterst du hingegen erst eine Sprache wie JavaScript, dann musst du bei jeder Sprache, die näher zum Maschinencode geht erstmal wieder Grundlagen schaffen.

Es ist Fakt*, dass jemand, der beispielsweise JavaScript gelernt hat, etwa genauso lange braucht C++ zu meistern, wie jemand der direkt mit C++ anfängt.

Andersrum sieht die Sache hingegen ganz anders aus. Der C++ Entwickler kramt ein bisschen in den Docs, eignet sich die Struktur der Sprache an und kommt ziemlich schnell rein.

*: Eigene Erfahrung. Ich habe meine Ausbildung in einer Firma gemacht, die fast ausschließlich in C++ geschrieben hat. Wir haben öfter frisch ausgebildete bekommen, die in der Ausbildung nur C# oder Java hatten. Da hab ich im ersten Ausbildungsjahr teilweise mehr fabriziert, als die mit der vollen Ausbildung, weil die einfach C++ nicht auf die Kette gekriegt hatten und auch noch angelernt/umgeschult werden mussten.

Ein softer Weg kann sein über JAVA zu gehen, JAVA war zumindest anfangs eine Art C++, bei der man Konstrukte weggelassen hatte. In den vergangenen 25 Jahren haben sich aber beide Sprachen stark weiterentwickelt. Wenn Du mit JAVA anfängst und dann auf C++ umsteigst, müsstest Du einige Dinge vergessen und dann anders neu lernen.

Der Vorteil von JAVA ist, dass es gutes Lehrmaterial gibt, da es Jahrelang die Anfängersprache an vielen Unis war.

Bei C++ hat mir das Buch von Stroustrup damals gut gefallen.

C++ ist dafür sehr gut und kannst du auch direkt anfangen zu lernen und als Engine nimmst du am besten unreal