On peut devenir super méta et faire un méta-raisonnement fallacieux: on fait un template où X est n'importe quel outil, et voila:
On m'a dit que X était un outil super puissant. Tout le monde s'est mis à utiliser X, et j'ai dû m'y mettre aussi. Or, je me suis aperçu que X n'était pas tout puissant. En particulier, appliquer bêtement ce qu'on m'avait enseigné à l'école sur X m'a mis dans le mur à plusieurs reprises. Par ailleurs, certains fabriquants de l'outil X ont mis sur le marché des versions améliorées, que je vais faire semblant d'ignorer dans mon commentaire contre X. Du coup, n'utilisez pas X!
Ça marche avec tout : si X=marteau et qu'à l'école on ne vous a pas dit qu'il ne fallait pas se taper sur les doigts, alors ça peut faire très mal. En plus, quand on a une vis, un marteau est tout pourri! Donc c'est fini, je n'utilise plus de marteau.
En gros, le gars en demande trop à la POO, il veut réutiliser des hiérarchies de classes non adaptées, il fait semblant de découvrir les limites de l'héritage multiple, et il découvre que quand on passe le même pointeur à plusieurs fonctions en même temps, tout le monde peut modifier l'objet, OMG.
Après, il y a un truc qui est vrai : la POO est mal vendue et mal expliquée. L'analogie typique (classe mère = générique, classe fille = cas particulier) n'est en pratique rarement utile, voire catastrophique en terme de design (par exemple, la classe Square doit être fille de Rectangle, et pas le contraire!). Si le design des classes n'as pas été conçu par quelqu'un d'expérimenté, alors tout va se référencer dans tous les sens, tout le monde va devenir friend de tout le monde, etc. C'est sûrement ça que l'enseignement de la POO a raté : programmer est facile quand le design est adéquat, mais réaliser un design correct est très très difficile, ce qui fait qu'en pratique, la plupart du temps, on doit gérer les problèmes d'un design merdique, et programmer est difficile.
# Raisonnement template
Posté par arnaudus . En réponse au lien Ciao Programmation Orientée Objet !. Évalué à 9.
On peut devenir super méta et faire un méta-raisonnement fallacieux: on fait un template où X est n'importe quel outil, et voila:
On m'a dit que X était un outil super puissant. Tout le monde s'est mis à utiliser X, et j'ai dû m'y mettre aussi. Or, je me suis aperçu que X n'était pas tout puissant. En particulier, appliquer bêtement ce qu'on m'avait enseigné à l'école sur X m'a mis dans le mur à plusieurs reprises. Par ailleurs, certains fabriquants de l'outil X ont mis sur le marché des versions améliorées, que je vais faire semblant d'ignorer dans mon commentaire contre X. Du coup, n'utilisez pas X!
Ça marche avec tout : si X=marteau et qu'à l'école on ne vous a pas dit qu'il ne fallait pas se taper sur les doigts, alors ça peut faire très mal. En plus, quand on a une vis, un marteau est tout pourri! Donc c'est fini, je n'utilise plus de marteau.
En gros, le gars en demande trop à la POO, il veut réutiliser des hiérarchies de classes non adaptées, il fait semblant de découvrir les limites de l'héritage multiple, et il découvre que quand on passe le même pointeur à plusieurs fonctions en même temps, tout le monde peut modifier l'objet, OMG.
Après, il y a un truc qui est vrai : la POO est mal vendue et mal expliquée. L'analogie typique (classe mère = générique, classe fille = cas particulier) n'est en pratique rarement utile, voire catastrophique en terme de design (par exemple, la classe Square doit être fille de Rectangle, et pas le contraire!). Si le design des classes n'as pas été conçu par quelqu'un d'expérimenté, alors tout va se référencer dans tous les sens, tout le monde va devenir friend de tout le monde, etc. C'est sûrement ça que l'enseignement de la POO a raté : programmer est facile quand le design est adéquat, mais réaliser un design correct est très très difficile, ce qui fait qu'en pratique, la plupart du temps, on doit gérer les problèmes d'un design merdique, et programmer est difficile.