• [^] # Re: Pourquoi un tiret bas?

    Posté par . En réponse au journal C✙✙ Le tiret bas (underscore) au début des variables membres ?. Évalué à 3. Dernière modification le 19 août 2018 à 23:50.

    En gros, l’idee c’est de désigner le bouzin pour rendre ce genre d’erreurs impossible/très dure a écrire en premier lieu.

    Oui, et c'est ce qui m'a le plus choqué dans l'article : utiliser des conventions syntaxiques sur les noms de variables et non le système de types pour porter des informations sémantiques. Un code non propre ne devrait même pas compiler !

    Pour faire court :

    • les types sont des concepts dont on construit les objets ;
    • les chaînes de caractères se subdivisent en deux catégories : les sures et les autres ;
    • on définit un sous-type pour représenter les chaînes sures ;
    • la fonction write ne doit accepter que des chaînes sures en entrée, sinon le code refuse de compiler.

    Grossièrement, une spécification simplifiée de son problème dans la syntaxe de mon langage de prédilection ressemble à ceci :

    val request : field -> string
    module type Safe = sig
     type t = private string
     val encode : string -> t
     val write : t -> unit
    end

    J'ose espérer que l'auteur n'est pas responsable de système critique sur le plan de la sécurité ou il vaudrait mieux qu'il retourne fabriquer du pain industriel : il n'y a rien de plus sale et moins propre que ce qu'il préconise. ;-)

    Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.