• [^] # Re: Le code impératif

    Posté par . En réponse au sondage Ce que je déteste le plus en informatique / programmation / codage c'est... :. Évalué à 2.

    IMHO: ce n'est pas de la doc.
    C'est un vulgaire commentaire par le mec qui a ecrit le bousin, pour lui meme, et pas forcement clair pour lui si il le relisait maintenant.

    Je doute fortement que ce soit un vulgaire commentaire pour l'auteur : il m'est parfaitement compréhensible, et je suppute qu'il en est de même pour son auteur. Cela étant je ne pense pas faire partie de la catégorie des gens normaux dont parlait Guillaum (bien que j'ai ni doctorat en informatique, ni +10 ans d'expérience en programmation), et je ne suis pas partisan du jargon employé fréquemment dans le monde de la programmation fonctionnel comme je l'avais exprimé humoristiquement dans ce commentaire sur la dépêche au sujet de la sortie du dernier compilateur GHC, commentaire que je concluais ironiquement par :

    Je milite également pour que l'on soit plus rigoureux dans l'expression de certaine proposition, et que l'on ne dise plus : « la terre est ronde », mais plutôt : « d'un certain point vue, une équipotentielle du champ de gravitation terrestre est homéomorphe à la sphère S_2 ». :-D

    Cela étant, la documentation pointée par Guillaum s'adresse plus aux programmeurs qui voudraient implémenter une instance de cette classe qu'aux utilisateurs d'une instance particulière, ce qui est le cas de l'exemple donné par Guillaum dans son commentaire : c'est une instance de la classe générale des bifoncteurs pour les paires. Mais la bibliothèque en question fournit, par exemple, une instance pour les triplets où les deux fonctions s'appliquent respectivement sur la seconde et troisième composante du triplet. Pour ceux qui comprennent le Haskell, qui sont au fond les programmeurs à qui est destiné un tel code, le plus simple est d'aller lire le code de son implémentation (il est très court et parfaitement compréhensible, même si l'on ne sait pas ce qu'est un bifoncteur ou un paramètre covariant). Et pour aller dans le sens du commentaire initial de Guillaume Denry, après lecture, essayez d'imaginer le compléxité de hiérarchie de classes et la longueur du code nécessaire pour implémenter la même chose en POO. ;-)

    Il n'en reste pas moins, en revanche, que cette documentation est bien succincte, et les différentes instances auraient mérité d'être documentées et illustrées d'exemples.

    Pour rejoindre le propos de Michaël sur les documentations en OCaml, ainsi que l'importance et la difficulté d'écrire une bonne documentation, les documentations des bibliothèques de Daniel Bünzli sont pour moi un modèle du genre comme, par exemple, la documentation de sa bibliothèque sur le XML

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