danke!
ich hatte den post nur deshalb hier gepostet, weil ich für meine 2 fragen keinen eigenen thread aufmachen wollte.
aber...was ist eig an der aussage dran dass in c++ nur alter code drin ist den keiner wegschmeisen will?
und...wie lange existiert c++ eigentlich noch als gängige programmiersprache?
Zu 1: Von der aussage, das in C++ nur alter code drin ist den keiner wegschmeißen, weiß nichts. Wie genau meinst du das? … Naja auf jeden fall ist C++ nur eine Weiterentwicklung von C gewesen
(will ich mal so sagen). Es war auch halt gefordert, dass alter C-Code weiterhin kompiliert werden kann, so dass eben die Sprachelemente mit übernommen worden sind.
(Das macht sich schon an dem struct {…} bemerkbar das eigentlich überholt ist, aber zwecks Kompatibilität immer noch implementiert ist.)
Bzw. C++ nur um neue Dogmata wie OOP erweitert wurde. In so fern ist die Aussage, das in C++ alter code drin ist den keiner wegschmeißen will, fast richtig. Es geht da nicht um wegschmeißen wollen sondern darum das C-Code auch auf einen C++-Compiler weiterhin kompiliert werden kann/muss.
Zu 2: Hmmm, wie lange C++ noch als gängige Sprach existieren wird kann ich dir nicht beantworten.
Windows: Naja, mit dem .net wurde ja schon von M$ der Grundstein gelegt das man eigentlich nicht mehr auf Kompilierende Sprachen
(Also für reine Software Entwickler), die Binärcode erzeugen, zurükgreifen brauch. Da genügt zum Beispiel C# oder sonst was das einen Bytcode erzeugt und das dann von den .net interpretieren läst. (Bestes Beispiel der Catalyst (nicht der eigentliche Treiber sondern nur die Software hinter dem Treiber; Also dem Cat )).
Auch ist es heute eigentlich relativ egal ob man Nun ein Spiel in C++ oder sonst was programmiert. Den der LowLevel-Anteil und somit die eigentliche Engine wird wie gehabt in Assembler+C (C++) Programmiert. Dan wird halt eine Software
(nenne wir es mal Level/Story Editor) programmiert
(wider in C/C++) mit den man darauf zurückgreifen kann und sich halt seine Levels, etc zusammenbaut
(z.B. Oblivion mit dem TES mit dem Komplet Oblivion gemacht wurde). Die eigentlichen MAPS, etc werden dann ingrunde auch "nur" interpretiert und zwar von der Game-Engine^^. Worauf ich hinaus will: Eigentlich bräuchte man den Level-Editor + die Startsoftware nicht mal in C++ Programmieren
Das könnte man genauso gut in Python, Java oder sonst was machen
(genug Möglichkeiten um auf Dynamic Link Librarys zurückzugreifen bieten diese Sprachen ja). Und schnell genung ist Java ja auch
(siehe JIT Interpreter). Die machen ja nichts anderes als auch nur auf LowLevel-Content zurückzugrifen
(in dem fall die Engine vom Game) wie die in C++ Implenetierten Level-Editoren. Und dafür reicht die Power alle mal aus und ist kaum mesbar zu C++ ^^
Aber warum wird C++ das immer noch benutzt? Hmmm, tja mMn herscht da immer noch ein Dogma unter den Entwicklern die der Meinung sind nur mit C/C++ lassen sich Games programmieren. Das trifft auf die Engine 100%ig zu
(wo bei man da auch noch Assembler mit hinzu zeihen muss). Aber auf alles andere was nach der Engine kommt ist dieses Dogam lägst überholt
Aber ich merke ich schweife gerade ein wenig ab…
Linux: Bei linux werden schon seit längeren sachen unternommen alle Applications + dern Kernel selbst nicht mehr von dem Binärcode abhängig zu machen. Ein par läute wollen so ne art über interpreter schaffen
(nen richtig guten effizienten JIT). Alle Sprachen sollen dann nicht mehr den Binärcode ausgeben sondern einen einheitlichen Bytcode der vom JIT Interpretiert wird. Das ergebe die gleichen Vorteil
(und noch ein par andere) wie bei .net. … Ich schau mal morgen ob ich den Link zu dem Artikel finde und poste den hier bzw. schick dir den Link per PM.
Wann C++ etc abgelöst wird kann ich nicht sagen, aber es steht fest das es irgendwann nicht mehr so sein wird wie heute. M$ hat mit seinen .net eine guten Grundstein dafür gelegt und in naher Zukunft werden wohl viele Entwickler auf den Zug aufspringen. Ich persönlich finde das gut weil,
1. wer möchte den heute noch mit pointern arbeiten
(wie ätzend das ist und wie viel unnötigen code man schreiben muss um auf für Moment X gewappnet zu sein muss ich glaube ich nicht erwähnen)?
2. Wer möchte heute noch sich über die Allokation von Speicher Gedanken machen und den damit verbundenen Aufwand/Verantwortung das auch alles sauber läuft
(wider unnötiger code, sichergehe das kein Speicherlecks entstehen, etc).
3. Und viel weitere Unzulänglichkeiten die den Programmierer von dem wesentlichen abhalten: Und zwar sich darauf zu konzentrieren sein Programm zu progen und sich nicht über jeden noch so unnötigen scheiß Gedanken zu machen die mit den eigentlichen Algorithmen von seinen Programm nichts zu tun haben….
Naja das ist so meine sicht auf die dinge als Nicht-Prof-Progger, der sich damit halt ein wenig beschäftig hat und schon mit verschiedenen dingen konfrontiert wurde diesbezüglich…Deshalb das alle muss nicht unbedingt stimmten und ein prof wird das vielleicht auch anders empfinden als ich…
LG Xtra9