La légende de la tour de Babel dépeint le fait que les humains ont perdu la capacité de parler un langage commun et se sont mis à utiliser des dialectes différents, rendant la communication entre eux bien plus difficile. Cette vengeance divine n'a jamais touché l'informatique qui a de son côté développé aussi des dizaines de façons d'écrire des programmes. Pourtant, peu importe le langage de codage choisi, s'il ne contient pas d'erreurs, la plupart des machines sont capables de le lire, qu'il soit fait sous Python, Java, C++ ou autres.
En fait, les choix vont se faire en fonction de ce qui est désiré par le programmeur et son aisance avec le type de code. Il aura aussi tendance à adapter une "syntaxe" ou une méthode de programmation selon ce qu'il recherche. Parmi celles de plus en plus populaires, on trouve la programmation orientée objet (POO).
Une simplification du code
Il existe différentes approches en programmation. Celle dite procédurale demande de décomposer un problème en sous-problèmes jusqu'à ce que des procédures soient identifiées et codées afin de les régler. Une stratégie qui comporte des failles importantes puisqu'il suffit d'une petite modification pour rendre instable tout le reste. L'approche fonctionnelle n'est pas très répandue; elle s'inspire des fonctions mathématiques dans son écriture. Elle trouve surtout son utilité dans la manipulation et l'analyse d'un nombre massif de données (ce qu'on appelle les mégadonnées).
La POO s'avère une méthode développée dans les années 1960 et 1970 qui semble plus simple dans son fonctionnement. Elle comporte un vocabulaire bien à elle mais qui est accessible même pour des programmeurs débutants parce qu'elle peut être enseignée en pseudo-code. Le principe est de créer des classes d'éléments ayant des propriétés et des méthodes (des fonctionnalités) qui seront dirigés par des constructeurs. Des composants d'une classe peuvent partager des caractéristiques similaires; on parle alors d'héritage. Quand une méthode, de son côté, possède le même nom mais a des implémentations différentes, on appelle cela le polymorphisme.
Chaque objet encapsule son état interne dans le code. Par exemple, une voiture dans une programmation orientée objet aurait dans sa capsule son niveau de carburant, si le moteur est allumé, etc. Ce qui leur permet de réagir aux manipulations de l'usager d'une application sans nécessairement avoir à tout programmer. Reprenons l'analogie de l'automobile dans le cadre d'une application de jeu sur mobile. En ayant déjà encapsulé l'état, si la personne essaie de démarrer une voiture sans essence, cela ne fonctionnera tout simplement pas.
Un langage parfait pour un monde d'intelligence artificielle?
En fait, c'est la beauté de la programmation orientée objet : l'abstraction. L'idée est de simplifier des concepts de haut niveau en cachant les détails fastidieux dans le code, le rendant plus lisible. Cela a été facilité, entre autres, par l'usage fréquent (quoique pas exclusif) du langage Pascal, créé à la fin des années 1960 par l'informaticien suisse Niklaus Wirth qui nous a quittés en janvier 2024. Ce langage a été expressément conçu afin d'enseigner le code à des étudiants débutant en programmation. Il n'a pas en tant que tel été pensé pour la POO mais des versions plus modernes prennent en compte les héritages et classes.
Par conséquent, sa simplicité d'approche se veut un excellent point d'entrée pour l'enseignement du code une fois les bases maîtrisées. D'autant plus qu'avec l'avènement d'intelligences artificielles, la programmation orientée objet apparait un avantage dans la création de nouveaux algorithmes. Les créateurs d'IA en l'adoptant permettraient une plus grande facilité de compréhension du fonctionnement de cette dernière, offrant plus de possibilités de modification ou d'amélioration du code.
Image : Pexels de Pixabay
Références :
Ahmad, Arslan. "Beginner's guide to object-oriented programming (OOP)." Design Gurus. Dernière mise à jour : 23 avril 2023. https://www.designgurus.io/blog/object-oriented-programming-oop.
Kandamplayil, Rahil. "À quoi sert le langage de programmation Pascal ?" YUHIRO Global. Dernière mise à jour : 9 mai 2024. https://www.yuhiro-global.com/fr/a-quoi-sert-le-langage-de-programmation-pascal/.
Krajnc, Antoine. "Programmation orientée objet : Définition, langages, cas d’usage." Jedha Bootcamp. Dernière mise à jour : 11 septembre 2024. https://www.jedha.co/formation-python/programmation-orientee-objet.
"L'orienté objet : concepts avancés." Formations Python En Français. Consulté le 15 septembre 2024. https://www.docstring.fr/formations/loriente-objet-concepts-avances/.
"Niklaus Wirth, créateur du langage de programmation Pascal et lauréat du prix Turing, l'équivalent du Prix Nobel pour l'informatique, n'est plus." Developpez.com. Dernière mise à jour : 4 janvier 2024. https://pascal.developpez.com/actu/352613/Niklaus-Wirth-createur-du-langage-de-programmation-Pascal-et-laureat-du-prix-Turing-l-equivalent-du-Prix-Nobel-pour-l-informatique-n-est-plus-Un-pionnier-de-l-informatique-nous-a-quitte/.
"Programmation orientée objet (POO)." Bob Le Développeur. Consulté le 15 septembre 2024. https://www.bob-le-developpeur.com/notions/programmation-orientee-objet-poo.
"Programmation orientée objet." MDN Web Docs. Consulté le 15 septembre 2024. https://developer.mozilla.org/fr/docs/Learn/JavaScript/Objects/Object-oriented_programming.
"Qu’est-ce que la programmation orientée objet (OOP) ?" IONOS Digital Guide. Dernière mise à jour : 6 octobre 2023. https://www.ionos.fr/digitalguide/sites-internet/developpement-web/oop-programmation-orientee-objet/.
Siddiqui, Moiz A. "The future of OOP in AI and machine learning." Medium. Dernière mise à jour : 18 mai 2024. https://medium.com/@moizas/the-future-of-oop-in-ai-and-machine-learning-85c655cddd4a.
Voir plus d'articles de cet auteur