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
In Java kann dir der Garbage Collector, wenn man nicht aufpasst, die Performance schnell herunterziehen, dafür kann es bei C++ passieren, dass man immer mehr Memory Leaks öffnet, da der Speicher nicht richtig verwaltet bzw. wieder freigegeben wird. Und gerade im Multi Threading Bereich weiß man ohne Reference Counting manchmal gar nicht, ob eine Variable noch in Benutzung ist, oder nicht.
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Schorsch« (12.05.2016, 12:42)
dot du bist echt ein C++ Fanboy
Zitat von »Architekt«
Es lebe Rust.
Das geht auch "richtig schön" in C++. Zumindest seit C++11.
Meiner Erfahrung nach ist es wesentlich einfacher, Ressourcen in C++ richtig zu verwalten als in einer Sprache mit Garbage Collector. Das Problem ist, dass der Garbage Collector zwar Objekte aufräumt (vielleicht, unter Umständen, wenn ihm danach ist) die Verwaltung jeder anderen Form von Ressource aufgrund des Fehlens jeglicher Garantien über die Lebensdauer konkreter Objekte dafür aber zur Hölle wird (weil es zwangsweise darauf hinauslauft, dass man per Dispose Pattern all das per Hand macht (und dabei 10000 Bugs einbaut, weil man alle möglichen Randfälle übersieht), was der C++ Compiler sowieso machen würde).
Wozu brauchst du das Dispose Design Pattern?
Java schaut, welche Klassen noch Instanzen auf das jeweilige Objekt haben und wenn die Anzahl der Instanzen 0 ist, wird das Objekt aus dem Speicher entfernt. Desweiteren erkennt der Garbage Collector auch sogenannte Inseln, also wenn sich Objekte gegenseitig referenzieren, aber nicht mehr benötigt werden.
Und wie gesagt:
Man kann auch in Java den Speicher native allozieren und freigeben - dann umgeht man den Garbage Collector direkt und genau das machen die Grafik libraries normalerweise (fast) alle, wenn man selbst OpenGL nutzt, kann und sollte man es ja auch so machen.
Dieser Beitrag wurde bereits 8 mal editiert, zuletzt von »dot« (12.05.2016, 02:55)
Hast du dir schonmal angeschaut, wie der TIOBE Index errechnet wird? Ich hab jedenfalls keine Ahnung, was genau dieser Index aussagen soll. Ich hab aber auch keine Ahnung, woran man festmachen will, was genau die "Programmiersprache Nummer Eins" sein soll...
Ich prophezeie dir hier und heute jedenfalls, dass sowohl Java als auch .Net zurecht im Sterben liegen. Die Zukunft dieser Plattformen liegt rein in der Maintenance vorhandener Anwendungen, eine Zukunft an der ich für meinen Teil garantiert nicht interessiert wäre.
Garbage Collection war vermutlich die dümmste Idee seit Anbeginn der Informatik. Zum Glück haben die Menschen das langsam kapiert, darum gibt es auch keine nennenswerten, neuen Sprachen mehr, die ernsthaft darauf aufbauen...
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Werbeanzeige