EDIT: hum... c'est gros.. desole

il y a un TL;DR un peu plus bas si t'as la flemme
JackosKing> oh mais j'ai pas dit que c'etait forcement inutile hein... et si tu prends le temps de lire ces bouquins, tu tombera forcement sur des trucs interessants... je suis d'accord. (enfin, sauf si le bouquin est merdique, etc...

)
("Je rappelle qu'on apprend pas la POO avec un livre de C++ ou de Java, mais un livre de POO! " --> heu, deja, on apprend pas forcement le C++ avec un "livre" de C++ non plus hein...

enfin si, a l'universite peut etre...)
et d'apres ce que j'ai pu observer, il y a plusieurs categories de developpeurs...
ceux qui rament et qui essayent d'apprendre par coeur des regles de code, des algos, des "methodes" de programmation, en esperant que tout d'un coup ils vont bien coder, mais qui au final n'arrivent a rien, parcequ'en pratique, juste apprendre betement, ca ne sert a rien des que tu t'attaques a du vrai dev et que tu sors du tout-theorique, ou des exercices qu'on te donne a l'ecole.
le fait est qu'ils restent mediocres d'un point de vue technique, et ne valent strictement rien des qu'il s'agit d'architecturer/d'abstraire/d'optimiser/de generaliser/etc.etc. du code... en gros tout ce qui n'est pas mecanique et qui ne peut pas etre fait ou resolu en appliquant les recettes de cuisine qu'on leur a appris.
je sais pas si c'est une limitation de leur esprit logique ou autre chose...
(je dis ca sans aucune mechancete, ou sans les prendre de haut hein, la plupart des gens que j'ai rencontre qui correspondent plus ou moins a ce cas la sont souvent tres bons dans d'autres domaines (ou meme juste quand on considere la chose d'un point de vue different), ca n'est pas une question d'etre plus ou moins intelligent, l'intelligence a plein de declinaisons differentes, mais juste une question de comment fonctionne le mode de pensee de la personne.)
ensuite d'un autre cote t'en as pour qui le genre d'architectures expliquees dans ces bouquins/articles de POO vient naturellement, qui font tout ca d'instinct, et avec qui tu n'as meme pas besoin de connaitre tous ces _termes_ specifiques quand tu discutes, vu que lorsque tu parle de code, d'algos, ou d'architecture de programmes, tu n'abordes quasiment jamais (enfin ca ne m'est jamais arrive avec eux en tout cas), des "details" comme les designs patterns (bon c'est pas des details, mais comme dit au dessus: ca vient naturellement)...
par exemple j'ai vu certains stagiaires (ok, tres peu, mais quand meme), avec qui tu n'as absolument pas besoin de te prendre la tete sur ca. tu leur dis quoi faire, et ils architecturent tout d'instinct... (pour apres eventuellement se rendre compte, si ils parlent a un adepte de la theorie de la POO, qu'en fait ils respectent tel ou tel principe enonce par tel ou tel bonhomme, qu'ils utilisent tel ou tel design pattern, etc... mais au final, ca va pas leur changer leur vie, si le type avait pas ete la pour enoncer son truc, ils auraient quand meme pondu le meme code.)
(d'ailleurs, chose marrante, personnellement, je trouve que ces regles enoncees sont pour la plupart totalement imbitables (oue, comme mes posts, desole.. :/ je fais des efforts pourtant

), et il faut que je les lise en faisant vraiment attention pour etre sur de bien capter (sauf quand il y a un exemple en code ou un schema explicatif "visuel" a cote), alors que ce qu'elles enoncent parait d'une evidence affligeante, c'est probablement la aussi une limitation de l'esprit, moi par exemple, bah je suis hermetique aux theoremes qui ont ete enonces en essayant de les rendre les plus clair/generaux/justes possibles... c'est juste... hm.. "

")
tiens, exemple, toujours dans ton article:
What is wanted here is something like the following substitution property: If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T, the behavior of P is unchanged when o1 is substituted for o2 then S is a subtype of T.
--> wtf...
TL;DR: certains font tout ca d'instinct, tout comme certaines personnes ont une facon de penser propice aux representations mentales de problemes en 3 dimensions, ou a la creation musicale, d'autres en ont une propice entre autres a l'architecture de POO, etc... (ca peut paraitre ridicule dit comme ca, mais... non... vraiment..)
evidemment apres il y a les subtilites du langage, mais comme tu dis, c'est autre chose... difference entre un bouquin de C++ et un bouquin de POO
Si si justement ce sont des principes pour le monde réel!!
Ce que tu proposes, c'est de la bidouille et cela ne donne pas du code réutilisable et propre.
oue, mais je rejoins un peu KK la dessus, malheureusement, le "monde reel", les prods concretes, (de ce que j'ai pu en voir en tout cas), c'est de la bidouille, et c'est crade...
ceux qui ont le luxe de faire des trucs bien propres, c'est ceux qui n'ont pas de vraies contraintes de temps ou d'argent... (oue, c'est un luxe de ne pas avoir de contraintes de merde qui t'empechent de faire ce que t'aimerais)
genre par exemple, des theoriciens, des chercheurs, ou bien ceux qui n'ont pas de deadlines "dures", ou bien des geeks de l'open source qui aiment passer toutes leurs nuits a se branler sur une template C++ de 10 lignes "sooo clever"© pendant 2 semaines... bref..
(ok c'est carricatural, et j'ai pas enormement d'experience non plus, si on relativise (peut etre moins que toi, mais deja on n'a probablement pas eu la meme...), mais de ce que j'ai pu voir, les contraintes de production font que meme malgre la meilleure volonte du monde, tu sera a un moment ou a un autre face a un choix dans le genre: passer une semaine a refactorer un module parceque ton cahier des charges a change de facon legere mais sournoise, ou bien une apres-midi a hacker les nouvelles fonctionnalites dans ce qui existe deja.
avec une deadline le lendemain, c'est vite vu...
(tu peux toujours dire "c'est parceque c'etait mal concu au debut", mais, non.. ca peut tout a fait arriver meme si c'etait bien concu pour coller au premier cahier des charges)
(la encore j'exaggere avec cet exemple, mais c'est pour que ca soit explicite

(enfin, j'exagere... c'est vite dit... des fois y a meme pas de cahier des charges...

)))