Pour le premier "pilier" il a totalement ignoré les mécanismes d'abstraction (classes abstraites, interfaces, décoration, généricité, héritage multiple, les scopes…).
Du coup effectivement ça marche moins bien :/
Bon bah j'ai décidé de totalement ignorer les 2 "piliers" restant.
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.
Le gars là au-dessus en demande trop à l'école. Il veut utiliser l'enseignement pour former des gens bons et fait des analogies avec le desiqn en POO. Alors qu'en vrai dans la vraie vie, on doit gérer les problèmes de gens merdiques, dans tous les domaines. :-)
"La liberté est à l'homme ce que les ailes sont à l'oiseau" Jean-Pierre Rosnay
# Diantre!
Posté par Maclag . Évalué à 5.
Un article vieux de 4ans qui dénonçait enfin la POO utilisée depuis des décennies pour en montrer les travers.
Je m'étonne que le C++, Java et Python aient survécu à ça…
# ce qui manque dans son raisonnement
Posté par blobmaster . Évalué à 3.
Le gars veut démonter les 3 "piliers" de la POO.
Pour le premier "pilier" il a totalement ignoré les mécanismes d'abstraction (classes abstraites, interfaces, décoration, généricité, héritage multiple, les scopes…).
Du coup effectivement ça marche moins bien :/
Bon bah j'ai décidé de totalement ignorer les 2 "piliers" restant.
# Raisonnement template
Posté par arnaudus . É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.
[^] # Re: Raisonnement template
Posté par ZeroHeure . Évalué à 5.
Le gars là au-dessus en demande trop à l'école. Il veut utiliser l'enseignement pour former des gens bons et fait des analogies avec le desiqn en POO. Alors qu'en vrai dans la vraie vie, on doit gérer les problèmes de gens merdiques, dans tous les domaines. :-)
"La liberté est à l'homme ce que les ailes sont à l'oiseau" Jean-Pierre Rosnay
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.