Section courante

A propos

Section administrative du site

Introduction

La programmation orientée objet (POO), ou Object-Oriented Programming (OOP) en anglais, est un paradigme de programmation reposant sur la notion d'objets. Un objet représente une entité logicielle regroupant à la fois des données, appelées champs ou attributs, ainsi que les traitements permettant de les manipuler, lesquels prennent la forme de procédures particulières appelées méthodes. Cette approche permet de rassembler dans une même structure les informations et les comportements qui leur sont associés. Les méthodes d'un objet peuvent accéder directement aux données qu'il contient, les modifier ou les utiliser pour effectuer différents traitements. Pour désigner l'objet courant, la plupart des langages de programmation utilisent un mot réservé comme this, self ou un équivalent selon la syntaxe propre au langage. Cette organisation favorise une meilleure structuration des programmes et facilite leur compréhension, leur maintenance ainsi que leur évolution.

Dans la programmation orientée objet, un programme est conçu comme un ensemble d'objets autonomes qui collaborent entre eux afin d'accomplir une tâche. Chaque objet possède son propre état, représenté par ses attributs, ainsi que son propre comportement, représenté par ses méthodes. Les objets communiquent généralement en s'échangeant des messages, en invoquant des méthodes ou en partageant certaines informations de manière contrôlée. Cette façon de concevoir un logiciel permet de découper un problème complexe en plusieurs composants plus simples, chacun étant responsable d'une fonction bien définie. Elle favorise également la réutilisation du code, la modularité des applications et une meilleure organisation des projets de grande envergure. Grâce à cette approche, il devient plus facile d'ajouter de nouvelles fonctionnalités ou de modifier des composants existants sans devoir réécrire l'ensemble du programme.

La programmation orientée objet repose également sur plusieurs concepts fondamentaux qui constituent la base de la majorité des langages modernes. Parmi ceux-ci figurent l'encapsulation, qui consiste à protéger les données internes d'un objet, l'héritage, qui permet à une classe de réutiliser les caractéristiques d'une autre, le polymorphisme, qui autorise différentes implémentations d'une même opération, ainsi que l'abstraction, qui facilite la modélisation de systèmes complexes. Ces principes contribuent à produire des logiciels plus robustes, plus extensibles et plus faciles à maintenir. C'est notamment pour cette raison que la programmation orientée objet est aujourd'hui largement utilisée dans le développement d'applications de bureau, de logiciels d'entreprise, de jeux vidéo, d'applications mobiles et de services Web.

Histoire

Les termes «objet» et «orienté», dans leur sens moderne associé à la programmation orientée objet, sont apparus progressivement au cours des années 1950 et 1960, notamment dans les milieux universitaires et les laboratoires de recherche tels que le Massachusetts Institute of Technology (MIT). À cette époque, les chercheurs cherchaient de nouvelles façons de représenter les données et les comportements afin de créer des programmes plus flexibles et plus faciles à faire évoluer. Dans les premiers environnements consacrés à l'intelligence artificielle, les objets représentaient des entités identifiables possédant des propriétés et des caractéristiques. Dans le langage LISP, par exemple, les éléments fondamentaux étaient appelés des atomes, lesquels pouvaient être associés à différentes propriétés afin de représenter des connaissances. Ces premières idées ont progressivement conduit à une manière totalement nouvelle de concevoir les logiciels.

Au cours des années 1960 et 1970, plusieurs chercheurs ont largement contribué à faire évoluer ces concepts. Parmi eux figurent Alan Kay, Ole-Johan Dahl, Kristen Nygaard et Ivan Sutherland, ayant chacun proposé différentes approches permettant de représenter des objets, des classes et des interactions entre composantes logiciels. Les travaux de Dahl et Nygaard sur le langage Simula sont souvent considérés comme une étape déterminante dans l'histoire de la programmation orientée objet, car ils introduisaient déjà plusieurs notions qui demeurent encore utilisées aujourd'hui, comme les classes, les objets et l'héritage. Alan Kay poursuivra ensuite ces idées en développant le langage Smalltalk, qui popularisera largement le concept d'objet et influencera de nombreux langages modernes.

Bien que ces chercheurs soient fréquemment associés à la naissance de la programmation orientée objet, il demeure difficile d'attribuer la paternité de ce paradigme à une seule personne. La POO est le résultat d'une évolution progressive alimentée par les travaux de nombreux informaticiens, universitaires et chercheurs répartis dans plusieurs laboratoires à travers le monde. Les concepts ont été raffinés au fil des décennies avant d'être intégrés dans des langages aujourd'hui très populaires tels que C++, Java, C#, Object Pascal, Python, Ruby ou encore Swift. De nos jours, la programmation orientée objet constitue l'un des paradigmes les plus utilisés dans le développement logiciel et continue d'évoluer en s'adaptant aux nouvelles exigences des technologies modernes.

Langage de programmation

Les langages de programmation orientée objets les plus connus sont C++, C# (C Sharp), Delphi/Kylix/Lazarus, Java, GO, Objective-C, Python, Ruby, Swift.



Dernière mise à jour : Mardi, le 1 novembre 2016