Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Prinzipiell stimmt es, dass man mit Java, C#, etc. einfacher ans Ziel kommt. Allerdings ist es nicht so, dass ich in C++ über einen gewissen Grad an Abstraktion nicht hinauskomme, im Gegenteil. Diese Sprachen erzwingen (natürlich aus gutem Grund) einfach einen gewisses Mindestmaß an Abstraktion, das viel weiter oben ansetzt als das von C++. Ich kann mit C++ aber genauso abstrakt arbeiten wie z.B. mit Java. Eigentlich sogar noch abstrakter, da ich in C++ nicht auf vorwiegend objektorientierte Konzepte beschränkt bin (ohne sprachliche Verrenkungen), sondern z.B. auch richtig generisch Programmieren oder sogar Metaprogrammierung betreiben kann. Das Problem mit C++ ist nicht die Ebene der Abstraktion, sondern dass die Sprache unnötig komplex und voller Fallstricke ist, sodass es vergleichsweise unglaublich viel Erfahrung braucht, um C++ wirklich einigermaßen zu beherrschen. Die Stärke von C++ ist genau die große Bandbreite der Sprache, was Abstraktion betrifft, dass ich sowohl absolut lowlevel als auch beliebig abstrakt arbeiten kann, je nachdem was gerade gefordert ist. Das macht C++ zu einem sehr sehr mächtigen Werkzeug. Mit all den Freiheiten richtig umzugehen, will allerdings gelernt sein. Denn das setzt natürlich voraus, dass mein Wissen und meine Erfahrung als Entwickler mindestens die selbe Bandbreite umfasst, die C++ abeckt. Und das ist eine ganze Menge. Am Ende ist es natürlich wie immer die Frage des richtigen Werkzeuges für den jeweiligen Job. Für den Hobbybereich ist sowieso jede der genannten Sprachen praktisch gut genug.
Die großen Entwickler, die heute noch in C++ entwickeln, nutzen bei weitem nicht das Potential, was einem C++ bietet.
Mal ehrlich, in der Industrie verwendet man normale Klassen und ein paar einfachere Templates, [...]
Über den Abstraktionsgrad von Haskell kann C++ aber nicht hinauskommen.
Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von »dot« (10.09.2011, 16:38)
Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von »dot« (10.09.2011, 16:49)
...
Java-Quelltext
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 public class Test { //Warum gibt diese Methode -1 zurück? public static int test1() { for(;;) { try { return 1; } finally { break; } } return -1; } //Warum ist das eine Endlosschleife? public static void test2() { while (true) { try { return; } finally { continue; } } }
Daher bei Strings immer equals... Das ist tatsächlich eine etwas verwirrende Angelegenheit.
Java-Quelltext
1 2 3 4 5 6 7 8 9 10 11 12 13 14 //Warum wird bei String-Literaren automatisch intern aufgerufen? //Das führt häufig zur Verwirung von Anfängern public static void test3() { String s1 = "abc"; String s2 = "abc"; String s3 = new String("abc"); System.out.println(s1 == s2);//true System.out.println(s1 == s3);//false s3 = s3.intern(); System.out.println(s1 == s3);//true } }
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Chromanoid« (10.09.2011, 17:13)
Quellcode |
|
1 |
a = b.Add(c.Multiply(-0.5f)); |
Quellcode |
|
1 |
a = b - 0.5f * c; |
Zitat
Man könnte auch sagen: Noch nicht. Wenn man sich mal ein wenig umschaut, bekommt man eigentlich den Eindruck, dass das gerade dabei ist, sich zu ändern. Abgesehen davon: Woher weißt du das so genau? Wenn ich mir z.B. Microsoft anschau, dann seh ich dort z.B. den Chairman des C++ Standardkommitees als Softwarearchitekt arbeiten. Und selbst wenn ist mir nicht ganz klar, was genau du eigentlich damit sagen willst. C++ wird also wohl von den meisten nicht voll genutzt. Eine Feststellung die ich so auch unterschreiben würde, aber im Kontext hier völlig irrelevant!?
Zitat
Um ja, d.h. man könnte in diesen Bereichen genausogut C# oder Java oder xyz verwenden, hat aber offenbar irgendwelche Gründe, das nicht zu tun. Und nun?
Zitat
Ich kenne Haskell nicht wirklich. Darum und vor allem auch, weil es als funktionale Sprache wohl nicht so leicht in den Vergleich hier passt, hab ich es in meinem Post bewusst ausgelassen.
Mir ist nicht klar, was daran
Quellcode
1 a = b.Add(c.Multiply(-0.5f));
leserlicher sein soll als
Quellcode
1 a = b - 0.5f * c;
Und das ist nur ein triviales Beispiel...
Ich glaube: Hätte sich eine Sprache wie Java oder C# für Spieleentwicklung durchgesetzt, würden wahrscheinlich wesentlich weniger basale Probleme und eher Architektur-Fragen in Foren wie diesem hier besprochen werden und es würden wahrscheinlich auch wesentlich mehr Hobbyprojekte erfolgreich und nicht als unerfüllte Kindheitsträume enden.
Werbeanzeige