Les possibles influences respectives des paradigmes orienté objet et fonctionnel sur les développeurs apparaissent dans une prise de position d’Ilya Suzdalnitski – ingénieur en informatique chez Replicon.
« L’état en lui-même est assez inoffensif. La grosse difficulté naît avec ceux dits mutables surtout s’ils sont partagés. Le cerveau humain est la machine la plus puissante de l'univers. Cependant, nos cerveaux sont vraiment piètres au jeu de la gestion des états. Il est beaucoup plus facile de raisonner au sujet d'un morceau de code si vous pensez seulement à ce que celui-ci fait et non aux variables qu'il modifie au sein de la base de code. Programmer avec des objets mutables s'apparente à de la jonglerie mentale. Je ne sais pas ce qu'il en est de vous autres, mais moi je pourrais jongler avec deux balles. Donnez-moi trois balles ou plus et je les lâcherai toutes. Pourquoi donc essayons-nous d'accomplir cet acte tous les jours au travail ? Malheureusement, la gestion des objets mutables est au cœur même de la programmation orientée objet. Le seul but de l'existence de méthodes sur un objet est de pouvoir modifier ses propriétés », indique-t-il à propos de la gestion des propriétés des objets (la notion d’état).
Ilya Suzdalnitski est d’avis que la gestion des états est plus complexe avec l’approche orientée objet surtout pour des bases de code importantes. D’après l’ingénieur de Replicon la racine des maux avec la POO telle que pratiquée via des langages comme Java ou C# est qu’elle n’est pas implémentée telle que conçue à l’origine : « On n’aurait jamais dû parler de concepts comme l’héritage, le polymorphisme ou avoir à traiter avec une myriade de patrons de conception »
C’est pour ces raisons que l’équipe d’Atomic Object spécialisée en développement web, mobile, desktop et dispositifs matériels ne fait pas un usage systématique des classes et s’appuie autant que possible sur une approche fonctionnelle. C’est en sus pour cet état de choses que le paradigme fonctionnel est susceptible de gagner en influence dans les années à venir. « C’est même une question de temps avant que la POO ne soit détrônée », d’après certains intervenants de la sphère.
En effet, des langages de programmation comme Kotlin prennent à la fois la programmation orientée objet et celle dite fonctionnelle en charge. C’est quelque chose que l’on n’aurait pas vu dans une foire aux questions du langage Java dans les années ‘90. En fait, de plus en plus de langages mettent en avant le support du style fonctionnel en avant comme argument de vente.
Il y a quelques mois, l’étude « Emploi développeur 2020 » est parue sur cette plateforme. En tête de liste des langages les plus demandés et les mieux payés, on retrouve Java. Sa première présentation officielle s’est faite le 23 mai 1995 au SunWorld comme langage de programmation structuré, impératif et orientée objet. C’est Java 8 (sorti en 2014) qui est venu mettre les développeurs qui font usage de ce langage de programmation sur les rails du style fonctionnel au travers des expressions lambdas. En fait, la remarque vaut pour bon nombre de langages de cette enquête dvp pour lesquels on note que de plus en plus de livres orientés programmation fonctionnelle paraissent. De quoi penser que le paradigme fonctionnel devrait avoir plus d’influence sur les développeurs en devenir.
Et vous ?
POO ou fonctionnel : lequel des paradigmes a eu le plus d’influence sur vous ? Pour quelles raisons ?
Qu’en est-il de la programmation procédurale et de la programmation logique entre autres ? Partagez vos expériences
Partagez-vous l’avis selon lequel la gestion des états est plus complexe avec la POO qu’avec l’approche fonctionnelle pour des bases de code importantes ?
Voyez-vous l'impact de l'approche fonctionnelle s'étendre au point qu'elle s'impose comme une norme ?
Voir aussi :
La programmation orientée-objet est-elle dépassée ? Une école en sciences informatiques l'élimine de son programme d'introduction
Faut-il éviter de distraire les débutants avec l'orientée objet ?
Comment pourriez-vous expliquer l'orienté objet ? Steve Jobs a essayé d'expliquer ce concept