Cependant, récemment, le monde du logiciel semble pencher en faveur d'autres paradigmes comme la programmation fonctionnelle.
C'est discutable. Tout d'abord, je ne vois pas d'autres paradigmes en dehors de la programmation orientée objet et de la programmation fonctionnelle qui sont largement discutés, donc je suppose que nous pouvons oublier la phrase «d'autres paradigmes comme» , parlons de FP, rien d'autre.
Les raisons pour lesquelles la programmation fonctionnelle est devenue si populaire au cours des dernières années ont été discutées en détail ici dans d'autres questions, je ne vais pas répéter cela (voir ici ou ici , par exemple). Mais, à mon avis, ce n'est pas parce que "OOP était une grosse erreur", ou "Functional vs OOP s'excluent mutuellement", c'est plus comme des personnes étendant leur boîte à outils et essayant de tirer le meilleur parti des deux mondes. Ok, il y a sûrement des experts qui sont des extrémistes favorisant l'un sur l'autre, mais vous trouverez ces gars des deux côtés.
Cela me fait penser, qu'en est-il de l'encapsulation et des autres principes de la POO? Se trompent-ils?
L'encapsulation a de nombreuses saveurs différentes. Les langages de programmation fonctionnels et les constructions de langage fournissent certaines formes d'encapsulation, d'autres orientées objet. Si vous recherchez des exemples d'encapsulation avec des moyens fonctionnels, commencez par les fermetures .
Concernant les "autres principes": non, ils ne se trompent pas, mais pour certains scénarios comme la parallélisation à grande échelle, les approches fonctionnelles évoluent probablement mieux. Pour d'autres scénarios, comme la création de cadres d'interface utilisateur bien conçus, les approches OOP évoluent probablement mieux (YMMV, je n'ai pas seulement un meilleur exemple à portée de main). De plus, je suis sûr que pour la plupart des scénarios du monde réel, cela dépend des connaissances et de l'expérience de l'équipe avec son paradigme de programmation préféré à quel point un certain système évoluera.
Est-ce que la POO est mal appliquée? Par exemple, Alan Kay est connu pour avoir dit dans le discours de l'OOPSLA 97: "J'ai inventé le terme orienté objet, et je peux vous dire que je n'avais pas C ++ en tête."
Certes, la POO est souvent mal appliquée par de nombreuses personnes, mais je suis sûr que c'est la même chose pour la PF. Et je serais étonné si John Mc Carthy (concepteur de Lisp) avait quelque chose comme Javascript en tête quand il pensait à la programmation fonctionnelle (merci à moi, ne m'embrasez pas trop pour cette comparaison ;-)
Joe Armstrong - "Les objets lient les fonctions et les structures de données en unités indivisibles. Je pense que c'est une erreur fondamentale car les fonctions et les structures de données appartiennent à des mondes totalement différents."
Je suppose que l'inventeur d'Erlang a de bons arguments, mais il a aussi son propre point de vue, alors laissez-lui son opinion et construisez la vôtre. Il y a beaucoup d'autres experts qui ont une idée différente de cela.