• [^] # Re: Bof bof bof

    Posté par . En réponse à la dépêche Le standard C++0x a enfin été voté. Évalué à 7.

    Alors qu'en Python (ou en lisp), on va souvent s'abstenir de définir une classe parce que un dictionnaire de tuple de liste de string, ca s'écrit tellement vite que t'y penses pas. Et du coup, tu peux faire des manipulations faciles sur des arbres de données avec tous les avantages de la programmation orientée Data.

    Et tu te retrouve avec des structures qui n'ont plus aucune sémantiques (en plus avec un langage à typage dynamique on augmente encore le coté flou du code). On se tappe des doc à rallonge pour expliquer que tel numéro de champ a tel ou tel signification et tel type. On ne vérifie que dans les tests fonctionnels (s'ils sont fait et de toute manière ils ne seront pas complets) la bonne utilisation de ses structure. Là où utiliser une classe rend le code lisible, clair et testable (on peut ajouter des assertions à chaque accès à une donnée pour vérifier si elle est utilisée comme il se doit).

    En plus de ça tu as un couplage fort entre l'utilisation des données et leur représentation. C'est un peu aténué par le ducktyping, mais ça ne me semble pas suffisant.

    Pour moi se passer de classe et tout balancer dans des dictionnaires c'est pas de l'orienté objet (ça se défend, il y a des langages qui font ça très bien comme ADA (même si maintenant ils ont ajouté de l'objet dans le langage)).

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)