• [^] # Re: Premières impressions

    Posté par (site web personnel, Mastodon) . En réponse à la dépêche Rust 1.0, entrée dans la période stable. Évalué à 8.

    En fait c'est lié à la règle "Orphan rules".

    Le problème c'est que si deux endroits dans le code déclarent tout les deux une implémentation sur le même type du même trait, alors on ne peut plus compiler car on ne sait pas quelle implem choisir.

    Le souci c'est que cela peut être deux personnes complètement différentes, par exemple dans deux bibliothèques sans aucun rapport et ensuite une troisième personne veut utiliser ces deux lib et là paf le chien. C'est un problème bien connu en Haskell (langage d'où provient l'inspiration pour le mécanismes des traits, qui s'appellent "classe de type" là bas), d'où la restriction supplémentaire en Rust pour éviter de ce retrouver dans cette situation (pas très probable mais très emmerdante quand ça arrive).