Il y a une issue de secours : le mot clé unsafe. [...] Vous savez alors que vous avez une petite partie de votre code qui n’est pas sûre. Si ensuite votre programme plante, ça viendra de là !
Bien que fervent soutien de Rust (et même actuellement membre de RustBelt), je me permets de réagir à cette remarque. Je souhaiterais faire remarquer que ceci est une croyance assez répandue, mais complètement foireuse.
La programmation à coup d'unsafe en Rust a des répercussions non-locales qui sont dues au fait que la sémantique d'une structure de donnée est décrite par son API, qui constitue un tout, et non pas par chaque fonction une par une. En gros, ça veut dire que la validité d'un code unsafe dépend de l'ensemble des interfaces transparentes qui en dépendent, ce qui peut être nettement plus vaste que le code dans un bloc unsafe. Il y a un très bon post de blog par Ralf Jung à ce sujet pour les gens intéressés.
# Rust vs. unsafe Rust
Posté par Perthmâd . En réponse au journal Conférence GStreamer 2017 : Oxydation de GStreamer. Évalué à 10.
Bien que fervent soutien de Rust (et même actuellement membre de RustBelt), je me permets de réagir à cette remarque. Je souhaiterais faire remarquer que ceci est une croyance assez répandue, mais complètement foireuse.
La programmation à coup d'unsafe en Rust a des répercussions non-locales qui sont dues au fait que la sémantique d'une structure de donnée est décrite par son API, qui constitue un tout, et non pas par chaque fonction une par une. En gros, ça veut dire que la validité d'un code unsafe dépend de l'ensemble des interfaces transparentes qui en dépendent, ce qui peut être nettement plus vaste que le code dans un bloc unsafe. Il y a un très bon post de blog par Ralf Jung à ce sujet pour les gens intéressés.