Aussi loin que je peux dire, malgré les innombrables millions ou des milliards dépensés sur la programmation orientée objet, l'éducation, les langues et les outils de la programmation orientée objet n'a pas amélioré la productivité du développeur de logiciel ou la fiabilité de, ni n'a réduit les coûts de développement. Peu de gens l'utilisation de la programmation orientée objet dans tous les sens rigoureux (peu de gens adhèrent ou de comprendre les principes tels que le LSP); il semble y avoir peu d'uniformité ou de la consistance aux approches que les gens prennent pour des problèmes de modélisation de domaines. Trop souvent, la classe est utilisée simplement pour son sucre syntaxique; il met les fonctions pour un type d'enregistrement dans leur petit espace de noms.
J'ai écrit une grande quantité de code pour une grande variété d'applications. Bien qu'il y a eu des endroits où la vraie substituables le sous-typage joué un rôle important dans l'application, celles-ci ont été assez exceptionnel. En général, bien que beaucoup de lip service est donnée de parler de "re-use" la réalité est que si un morceau de code qui fait exactement ce que vous voulez faire, il y a très peu coût-efficace "re-use". Il est extrêmement difficile de classes de conception pour être extensible dans le droit chemin, et donc le coût de l'extension est normalement si grande, que la "re-use" n'est tout simplement pas la peine.
À bien des égards, cela ne m'étonne pas. Le monde réel n'est pas "OO", et l'idée implicite dans OO--que l'on peut modéliser des choses avec une certaine classe de la taxonomie--me semble très viciée à la base (je peux m'asseoir sur une table, un tronc d'arbre, le capot d'une voiture, quelqu'un tour, mais pas un de ceux est-une chaise). Même si nous orienter davantage vers des domaines abstraits, OO modélisation est souvent difficile, contre-intuitif, et en fin de compte inutile (considérez les exemples classiques de cercles/ellipses ou des carrés/rectangles).
Donc ce qui me manque ici? Où est la valeur de la programmation orientée objet, et pourquoi tous les temps et de l'argent n'a pas à faire des logiciels mieux?