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
Alter Hase
Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy
Garbage Collector basierte Sprachen sind doch wahnsinnig nervig, sobald man nicht RAM Ressourcen hat: Ein File Handle, ein Socket oder ein OpenGL Objekt.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Nimelrian« (12.05.2016, 17:12)
Community-Fossil
Go wurde hier ja oft erwähnt, der GC ist sicher ein großer Streitpunkt. Perönlich ist es nicht gerade ein großes Thema, dass dieser vorhanden ist. Man kann gut lernen mit ihm zu leben, man muss nur etwas umdenken.
Go versucht ganz andere Probleme zu lösen und das macht die Sprache meines Erachtens sehr gut. Am Anfang hab ich echt allergisch reagiert, dass mir die Sprach vorgibt wie ich Benennungen vorgebe und vieles mehr. Ich hab sie immer wieder weggeworfen, gereizt hat sie mich dennoch.
Go versucht einen eher Sozialen Aspekt der Programmierung zu lösen (neben anderen Dingen), Quellcode soll immer vertraut aussehen. Der Code von einem Kollegen oder Fremden soll einem trotzallen sehr schnell vertraut erscheinen. Das hebt deutlich die Code Qualität und vermeidet sehr viele Fehler von sehr komplexen Sprachen wie C++. Ein Problem welches auch Rust hat.
Go hat im Sinn, dass Menschen Programmieren und diese je nach Fähigkeitstand wenig Probleme haben sollten guten Code zu schreiben. Ein Grund warum Go auch so viel wert auf gute und einheitliche Tools und Minimalismuss legt. Akademisch ist sie vielleicht nicht die tollste Sprache, aber sie ermöglicht einer viel größeren Nutzerbasis guten Code mit deutlich geringerem Aufwand zu schreiben. Und deswegen erachte ich auch den GC als gute Entscheidung in Go.
C++ ist eine Zweifelsfrei tolle Sprache, aber es gibt zu viele Möglichkeiten ein Problem zu lösen, und das aufgrund der Sprachmittel nicht verschiedener Algorithmen. Man nutzt 3 verschiedene Bibliotheken und schon schaut der eigene Code aus, als ob 4 verschiedene Personen in ihm rumgepfuscht haben. Zudem muss man, wenn man Fremdcode verstehen will den gesamten Sprachumfang von C++ verstehen da jeder seine eigenen vorlieben hat, was für nicht gerade wenige Entwickler schwer möglich ist da sie nicht den Luxus genießen in einer Sprache langfristig entwickeln zu dürfen um so trainiert zu sein. Auch dies sind alles potentielle Fehlerquellen.
Natürlich bringt ein GC neue Fehlerquellen, aber auch RAII ist davon nicht frei, denn es muss konsequent umgesetzt werden und von jedem teilnehmenden Entwickler.
Ich habe noch nie eine so einheitlich aussehende Codebasis von so vielen unterschiedlichen Entwicklern wie in Go gesehen.
Du spakst rum, ist alles ok. Der Chat geht auch.
Zitat von »Architekt«
Es lebe Rust.
Und D?
MfG
Check
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Architekt« (12.05.2016, 19:36)
Garbage Collector basierte Sprachen sind doch wahnsinnig nervig, sobald man nicht RAM Ressourcen hat: Ein File Handle, ein Socket oder ein OpenGL Objekt.
Das bestreitet auch keiner. In einer normalen Business Anwendung wirst du aber nicht viel damit zu tun haben, weil du da dank Frameworks wie Spring in Java auf einer unglaublich hohen Abstraktionsebene arbeitest. Schau dir mal an wie viel Code du mit Spring brauchst, um eine Datenbank-Tabelle über eine REST-API zu öffnen. Wie viel Aufwand das mit C++ wäre, will ich mir gar nicht erst ausmalen.
@Architekt
Referenzzählung ist doch auch deterministisch?
Gibt es einen GC in Rust? Ich dachte irgendwie, man hätte den mal entfernt? Ich kann allerdings gerade nix konkretes dazu finden.
Und zu Go und seinem GC: Mit 1.4 und deren nebenläufigen GC ist die Performance sowas von in den Keller gegangen und afaik leakt doch beinahe jeder go-Channel trotz GC. Oder haben die das mittlerweile mal in den Griff bekommen?
Und zu Go und seinem GC: Mit 1.4 und deren nebenläufigen GC ist die Performance sowas von in den Keller gegangen und afaik leakt doch beinahe jeder go-Channel trotz GC. Oder haben die das mittlerweile mal in den Griff bekommen?
Also ich kann mich jetzt an keinen GC Bug erinnern im Zusammenhang mit den channels oder meinst du damit, dass der GC sagt "RAM ist zum nutze da". Ansonsten hat sich der GC durchaus weiter entwickelt. Go GC: Prioritizing low latency and simplicity
Werbeanzeige