Rust will Smart Pointer so flexibel wie eingebaute Referenzen machen
Beyond the &
Tyler Mandry, Leiter des Rust-Language-Teams, stellte auf der RustConf 2026 das Projekt „Beyond the &“ vor. Es soll nutzerdefinierten Smart Pointern wie MutexGuard erlauben, sich so zu verhalten wie eingebaute Referenzen. Kern ist die Offenlegung des internen Konzepts der „Places“ für Bibliothekscode über neue Traits wie BorrowPlace und ProjectPlace. Dadurch könnte der Borrow Checker auch bei komplexen Typen erkennen, dass Zugriffe disjunkt sind. Das Design ist noch ein Prototyp, verspricht aber ein einfacheres mentales Modell.
„Meine Hoffnung ist, dass es Bibliotheken ermöglicht, Rust noch mächtiger und freundlicher zu machen.“
- weinzierl
„Ein Place ist Rusts Entsprechung zu den linken Seiten (lvalues) in C: eine Stelle, von der Werte gelesen oder in die Werte geschrieben werden können. Der Unterschied zwischen einem Place und einem Pointer besteht darin, dass ein Place ein abstrakter Ausdruck ist, der zur Compile-Zeit existiert, etwa state.cache, und ein Pointer eine Möglichkeit ist, einen Place zur Laufzeit darzustellen.“
Das war ein hilfreicher Hinweis.
- chombier
Aufzeichnung des Vortrags: https://www.youtube.com/watch?v=bXs56902ElY
- creata
> Das funktioniert, ist aber nicht besonders intuitiv.
Sieht doch in Ordnung aus? Der Code schlägt fehl, weil er den MutexGuard zweimal dereferenziert, also dereferenzierst du ihn stattdessen einmal. Es ist schwer vorstellbar, dass das viel zu „Rusts schwieriger Lernkurve“ beiträgt.
Vielmehr scheint es, als würde das Einführen von noch mehr potenzieller Implizitheit bei jedem `.` die Sprache schwerer erlernbar machen.
Gibt es ein Beispiel, das wirklich von diesen Features profitiert?