La programmation orientée objet est un concept qui a balayé les départements d’informatique des universités dans les années 80 et la communauté des logiciels de production dans les années 90 : comme la « programmation modulaire » avant elle et la « programmation Internet » après elle, l’OOP a fait l’objet d’un certain débat. Aujourd’hui, les concepts de programmation modulaire sont universellement acceptés, et bon nombre des concepts de la POO sont largement acceptés, bien que certaines objections au paradigme de la POO subsistent.

L’idée de base de l’OOP

Dans la POO, les programmes informatiques sont l’interaction des « objets ». Un objet a des « variables d’instance » et des « méthodes ». Les variables d’instance enregistrent les valeurs associées à l’objet. Les méthodes sont des fonctions qui impliquent un aspect de l’objet. Dans un programme de jeu, il peut y avoir un objet appelé « vaisseau spatial », qui a des variables d’instance comme la quantité de carburant. Une méthode pourrait être « torpille de feu ». Les vaisseaux spatiaux pourraient appartenir à une « classe » d’objets appelés « objets en mouvement ». Les astéroïdes appartiennent également à cette classe. L’exécution du programme consiste à ce que les objets s’envoient des « messages » les uns aux autres.

Les avantages de l’OOP

Le premier avantage du concept d’objets est que tout le code qui a quelque chose à voir avec les vaisseaux spatiaux se trouve à un seul endroit. Un autre avantage est que les objets peuvent posséder des attributs inhérents à la classe à laquelle ils appartiennent ; par exemple, les vaisseaux spatiaux et les astéroïdes peuvent tous deux avoir une position XY parce que tous les objets qui appartiennent à la classe des objets en mouvement ont une position XY. Ecrire du code est souvent plus facile parce que vous pouvez le conceptualiser comme quelque chose qui arrive à un objet. Un autre avantage est que la POO rend les grands programmes plus faciles à gérer. Si toutes les fenêtres appartiennent à une hiérarchie de classes de fenêtres et tout le code qui se réfère à une fenêtre particulière est avec cet objet de fenêtre, toutes les manipulations de fenêtre peuvent être écrites comme le transfert de messages simples.

Les inconvénients de la POO

Tous les programmes ne peuvent pas être modélisés avec précision par le modèle d’objets. Si vous voulez simplement lire des données, leur faire quelque chose de simple et les réécrire, vous n’avez pas besoin de définir des classes et des objets. Cependant, dans certaines langues de la POO, il se peut que vous ayez à effectuer cette étape supplémentaire. Un autre inconvénient est que si vous forcez la langue dans le concept de POO, vous perdez certaines des caractéristiques des langages utiles comme les « langages fonctionnels ». Un autre inconvénient est que le concept d’un programmeur de ce qui constitue un objet abstrait pourrait ne pas correspondre à la vision d’un autre programmeur. Les objets nécessitent souvent une documentation complète.

L’avenir de l’OOP

L’avenir de la POO repose probablement sur des langages comme Ruby et Lua, dans lesquels le concept d’objet est intégré au langage et n’est pas toujours explicitement contrôlé par le programmeur. Ruby, par exemple, traite tout comme un objet, y compris les chaînes de caractères, les nombres, votre programme et le contenu du répertoire dans lequel vous êtes actuellement. Vous n’avez presque jamais besoin de déclarer quoi que ce soit pour être un objet. Vous êtes libre d’utiliser la langue comme bon vous semble : en tant qu’OOP, en tant que langue fonctionnelle, en tant que langue procédurale ou même en mélangeant les modalités.

Ressources intéressantes : 1, 2.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.