Avatar von ddtthh
  • ddtthh

923 Beiträge seit 31.07.2015

Re: Kann ich offen gesagt nicht verstehen

2. Ja, der Compiler + Ownership + Typsystem ist ein vollwertiger GC Ersatz - und hat noch ein paar sehr nette Effekte/Features.

Naja, da gehören schon noch ein paar dynamische Wrapper dazu, die Ref-Counting und dynamisches Borrowing wegkapseln. Bei Programmen, die viel (womöglich über Threads hinweg) geteilte Daten verwenden, stellt sich die Frage Ref-Counting vs. GC dann schon immer noch.
Auch ist es definitiv so, dass sich mit GC bequemer entwickelt als mit dem Ownership-Konzept.
Man sollte sich zum Vergleich nicht Java angucken (und vielleicht auch nicht Go) sondern vielleicht eher Scala, Haskel oder Closure. Statt des Borrow-Checkings werden da geteilte, unveränderliche (aka persistente) Datenstrukturen verwendet. Damit kann man programmieren ohne darüber nachzudenken, was man wo teilt. Diese Datenstrukturen setzen aber natürlich auf eine effiziente, dynamische Speicherverwaltung. (RefCounting würde theoretisch auch reichen, ich weiß aber nicht, wie performant das dann noch ist.)

Bei Rust hingegen muss man darüber nachdenken, wer gerade welche Datenstruktur besitzt. Der Vorteil ist nur, dass der Compiler prüft, ob man richtig gedacht hat.

Ich finde Rust ist eine sehr schöne Sprache, aber das "Ende des GCs" ist Rust vermutlich nicht. Es ist für mich eher die Sprache, die ich verwenden will, wenn ich mir den Luxus eines GCs nicht leisten kann.

(Was mir noch sehr fehlt sind übrigens die nicht-lexikalischen Lifetimes. Hat sich da eigentlich mittlerweile etwas getan?)

Bewerten
- +