Rust a repris plein de concepts existants/éprouvés dans d'autres langages (C++, Haskell, Erlang, Python...), mais pour le coup sa gestion des références est réellement unique, et va plus loin que du simple RAII habituel (c'est sûrement inspiré du RAII, mais c'est bien plus que du RAII obligatoire)
Enfin une vrai remarque construite ! merci sincèrement.
C'est vrai que le borrow checker fait de Rust un langage assez unique en soit.
Il utilise l'analyse statique au moment de la compilation pour détecter des problèmes qui passerait inaperçu dans une RAII classique "à la C++".
C'est une innovation propre à Rust, c'est vrai et c'est une innovation importante en terme de sûreté.
Le borrow checker n'a pas d'équivalent (à ma connaissance) ailleurs
Il n'en a pas directement c'est vrai.
Dans un cas similaire, Il y a un talk d'Herb Shutter à la dernière CppCon qui introduit un système similaire en C++ associé au unique_ptr de C++ (probablement inspiré de Rust au passage )
Leur système fait de l'analyse static sur du code C++ et détecte à la compilation les utilisations invalide de pointeur en traçant les utilisations invalide potentiels de unique_ptr aprés un "move".
Mais ça reste un plugin d'analyse statique là, et ce n'est probablement pas fiable à 100% où Rust l'a mis directement dans le design du langage.
[^] # Re: Destructeurs
Posté par Firwen (site web personnel) . En réponse à la dépêche Crystal, un langage proche de Ruby, en version 0.16. Évalué à 2. Dernière modification le 12 mai 2016 à 22:54.
Enfin une vrai remarque construite ! merci sincèrement.
C'est vrai que le borrow checker fait de Rust un langage assez unique en soit.
Il utilise l'analyse statique au moment de la compilation pour détecter des problèmes qui passerait inaperçu dans une RAII classique "à la C++".
C'est une innovation propre à Rust, c'est vrai et c'est une innovation importante en terme de sûreté.
Il n'en a pas directement c'est vrai.
Dans un cas similaire, Il y a un talk d'Herb Shutter à la dernière CppCon qui introduit un système similaire en C++ associé au unique_ptr de C++ (probablement inspiré de Rust au passage )
Leur système fait de l'analyse static sur du code C++ et détecte à la compilation les utilisations invalide de pointeur en traçant les utilisations invalide potentiels de unique_ptr aprés un "move".
Mais ça reste un plugin d'analyse statique là, et ce n'est probablement pas fiable à 100% où Rust l'a mis directement dans le design du langage.