Qu'est-ce que la programmation orientée objet ?

Mohamed Zebli
Par 
Mohamed Zebli
Data Scientist
Dernière mise à jour le 
09
 
November
 
2023
Vous débutez en Data ? Maîtrisez les fondamentaux en quelques heures !
Découvrir notre formation
Qu'est-ce que la programmation orientée objet ?
Sommaire

On peut souvent entendre dire qu’un langage de programmation orienté object Python apporte de grands avantages de la modularité, l’abstraction, la productivité et ré-utilisabilité, la sûreté… Python en est lui même un, c'est d’ailleurs une des raisons pour lesquelles il est aussi populaire. Mais qu’est-ce que la Programmation Orientée Objet (POO) ? Pourquoi est-elle si utile ?

Vous débutez en Data ? Maîtrisez les fondamentaux en quelques heures !
Découvrir notre formation
Formation Data pour débutantFormation Data pour débutant

Article rédigé par Mohamed Zebli, élèves de la 5e promotion de notre formation Data Fullstack.

Vous avez dit POO ?

La programmation orientée objet (POO) est un paradigme au sein de la programmation informatique. Il s’agit d’une représentation des choses, un modèle cohérent – partagé à travers différents langages qui permettent son usage (Python, Java, C++).Le but de la POO consiste à définir et faire interagir entre eux des objets, compris ici comme tous types de structures issues d’un langage donné.

Par convenance, les objets en POO désignent le plus souvent des variables complexes, elles-mêmes composées de variables ou de fonctions.

Un peu d'histoire

Le paradigme de programmation qu’est la POO a été défini par les norvégiens Ole-Johan Dahl et Kristen Nygaard au début de la décennie 1960. Plus tard, leurs travaux furent repris et amendés dans les années 1970 par l’américain Alan Kay. C’est ainsi que les principes de la POO sont posés et seront précisés par la suite. Principes que voici.

Les principes de la POO

Nous revenons sur ces principes par des exemples, juste en dessous !

--> Encapsulation

il s’agit de regrouper des données avec un ensemble de routines visant à les lire ou les manipuler. Chaque classe  définit des méthodes ou propriétés afin d’interagir avec les données. C’est à partir de la classe que seront créés les différents objets. Quand un des objets de la classe sera intégré dans le programme, on parlera de cet objet en tant qu’instance de la classe : l’objet est créé avec les propriétés de sa classe.

--> Abstraction

Elle consiste à masquer à l’utilisateur les détails inutiles. Ce dernier peu ainsi implémenter sa propre logique davantage complexe sans pour autant avoir à prendre en compte la complexité cachée et sous-jacente.

--> Héritage

Cela signifie qu’une classe B hérite de la classe A. Autrement dit, la classe B hérite des attributs et méthodes de la classe A. On peut alors appeler Les méthodes contenues dans la classe A par la classe B dès lors qu’une instance de la classe B est créée. Cela fait énormément gagner en temps.

--> Polymorphisme

Il permet au développeur d’utiliser une méthode ou un attribut selon plusieurs manières, en fonction de son besoin. Une même méthode peut, par exemple, être utilisée sur des entités différentes. La méthode du même nom produira des effets différents selon son contexte d’utilisation.

Programmation procédurale vs POO

Avant que la POO ne soit employée, la programmation informatique se faisait au moyen de la programmation procédurale. La résolution d’un problème se faisait par une analyse descendante qui décomposait le problème en sous-problèmes jusqu’à que des actions très simples soient identifiées. Ainsi, le programme est décomposé en procédures qui interagissent entre elles afin de résoudre le problème.

Si la programmation procédurale est intuitive lorsqu’il s’agit d’apprendre la programmation, cette méthode pose un certain nombre d’inconvénients à terme. Le premier est que la plus petite modification de la structure des données du programme appelle à une modification de toutes les procédures qui interagissent avec ces données. De plus, développer un très grand programme en procédural peut s’avérer long et fastidieux.

Si la POO ne permet pas fondamentalement de faire plus de choses que la programmation procédurale, elle permet toutefois de mieux organiser son code. Elle facilite aussi le travail coopératif et la maintenance à long terme.

Pourquoi est-ce si utile pour la Data Science ?

La POO a permis, sans grand doute, de démocratiser l’accès à la Data science auprès d’un nombre non négligeable de personnes. En effet, les librairies permettent d’utiliser des méthodes et fonctions définies par d’autres. Les librairies contiennent des modules, qui eux-mêmes contiennent des classes. Au sein de ces classes, des méthodes sont ainsi programmées. C’est ainsi que se manifeste l’encapsulation.

Le Data scientist qui importe une librairie a directement accès à toutes les fonctions, parfois complexes, sans pour autant avoir besoin de coder lui-même leur fonctionnement intrinsèque.

Grâce à l’abstraction, il peut implémenter les méthodes prédéfinies sans avoir besoin de comprendre la manière dont elles ont été construites. Grâce au polymorphisme, il est possible d’appliquer une même méthode à des données et des contextes très différents.

Par exemple, la librairie Seaborn propose d’implémenter – sur un jeu de données – différentes représentations graphiques. Le Data Scientist n’a nul besoin de connaître le code détaillé contenu dans les classes de la librairie. Seules les méthodes et la logique de leur fonctionnement lui sont utiles afin d’arriver à ses fins. Il peut ainsi obtenir une représentation graphique sur deux jeux de données différents, simplement en appliquant la méthode voulue.

C’est ainsi que diverses librairies rencontrent un certain succès et simplifient grandement un certain nombre de tâches : Numpy pour la manipulation de matrices et de tableaux multidimensionnels, Pandas pour l’analyse de données, ou encore Scikitlearn pour l’implémentation d’algorithmes d’apprentissage automatique.

Enfin, les grandes entreprises technologiques développent – à un très grand niveau d’expertise technique – leurs propres librairies, classes et méthodes. A la manière d’un secret industriel, elles garantissent à ladite entreprise de disposer par exemple de ses propres outils d’apprentissage automatique (pour la reconnaissance faciale chez Facebook, pour la recommandation de contenus chez YouTube/Google, etc.). Cela, afin de notamment disposer d’un avantage concurrentiel permis par la performance des outils et des efforts de R&D (recherche et développement) ainsi consentis.

Si vous souhaitez acquérir les compétences en Data recherchées des recruteurs, n'hésitez pas à regarder les formations en Python et plus généralement en Data que Jedha Bootcamp propose.

Et si vous avez besoin d’une remise à niveau en informatique, vous pouvez également suivre des cours particuliers en informatique.

Soirée Portes Ouvertes Jedha BootcampSoirée Portes Ouvertes Jedha Bootcamp
Mohamed Zebli
Mohamed Zebli
Data Scientist

Articles recommandés

Python
Formation Python | Jedha
Découvrez le langage Python à travers nos formations qui abordent aussi bien les notions de base que celles plus avancées pour maîtriser ce langage très utilisé dans la Data et l'IA, et la Tech en général.
Python
5 bonnes raisons de se former à Python | Jedha
Si vous souhaitez acquérir les compétences en Data recherchées des recruteurs, n'hésitez pas à regarder les formations Data que Jedha Bootcamp propose !
Python
Les objets en Programmation Orientée Objet | Jedha
Il n'y a pas de programmation orientéee objet sans objets, on vous explique ce que c'est, leur utilité, les différents types d'objets et comment les créer.
Blog
Apprendre Python ou R ?
Python et R font partis des langages de programmations les plus utilisés dans le domaine de la Data Science. Connaissez-vous réellement la différence entre ces deux langages de programmation ?
Python
Les fonctions de test en Python | Jedha
Utilisé dans la programmation des applications, des logiciels et des plateformes web, Python fait partie des langages informatiques les plus utilisés par les développeurs.
Python
Les 5 meilleures formations pour apprendre Python
Vous apprendre Python et développer vos compétences sur ce langage de programmation ? Nous avons sélectionné les 5 meilleurs cours et formations dans le domaine en France !