1- Langages Objets


1 La programmation objet par rapport à la programmation procédurale

2 Modélisation

3 Java

4 C++

5 Quel langage ?


1 La programmation objet par rapport à la programmation procédurale

Dans les deux cas, il s'agit de réaliser une suite d'opérations sur des variables préalablement déclarées et initialisées, le programmeur donnant un sens à l'état final des variables. La programmation procédurale et la programmation objet sont deux démarches de conception de la suite des opérations et de la déclaration des variables.

Dans le cas de la programmation procédurale, on définit une suite de variables et on lance les opérations sur ces variables. Toute sous-suite répétée d'opérations qui représente un ensemble cohérent d'opérations est décentralisée au sein d'une procédure ou d'une fonction.

La progammation objet reprend ce principe mais l'ensemble des procédures/fonctions et des variables définies pour le "calcul" est rédefini et redistribué en fonction d'objets liés entre eux. La programmation objet est une autre forme de conception du code. Elle facilite la conception des programmes par rapport à la programmation procédurale. Elle consiste pour le programmeur à créer une série d'objets qui décrivent un modèle informatique. Par exemple, pour la gestion d'un système de facturation, on créera des objets Facture, Client etc... et on manipulera ces objets. La programmation objet facile la conception, l'entretien et la communication sur le code.

Les principes d'optimisation du code sont les mêmes : on applique toujours la même méthode pour trier un tableau de manière efficace. La programmation objet change seulement la conception et l'organisation du code. De fait, l'intérêt de la programmation objet apparaît pour des projets d'importance, non pour les projets plus modestes.


2 Modélisation

Pour une application particulière, il existe plusieurs manières de concevoir le découpage en objets. Sur de petites applications, le nombre des types d'objets est suffisamment faible pour que cette hétérogénéité n'empêche pas la compréhension du code produit par un tiers. En revanche, sur des applications plus importantes ou appellant l'intervention conjointe de plusieurs développeurs, il faut expliciter la modélisation implicite d'un découpage par objets.

La communication sur des modèles objets se fait notamment grâce à un formalisme graphique : UML ou Unified Modelling Language. Une bonne démarche de programmation objet consisterait à produire le schéma UML correspondant aux objets de l'application et tenter de l'améliorer avant même de se lancer dans la production du code. Dans le cas d'ambigüité sur des choix de conception d'un modèle objet, il existe un certain nombre de principes qui peuvent orienter la démarche du développeur : les designs patterns qui normalisent des élements de conception du modèle objet. Par suite, l'implémentation d'un modèle objet explicité dans un schéma UML dans n'importe quel langage de programmation objet se fait sans difficultés.

Le langage UML et les principes de concpetion pourrait constituer plusieurs cours en soi mais ne sont pas plus évoqués dans ce qui suit, Des schéma reposant sur le formalisme UML pourront être utilisés, mais la compréhension de ces schéma ne nécessitera jamais de connaissances spécialisées en UML.

En tapant simplement "Uml" dans le champ de recherche d'images de Google, on tombe sur une série de graphiques UML, par exemple :
un diagramme objet UML.


3 Java

Le nom de "java" vient de l'île de Java en indonésie et au café qui en est extrait. Java est un monde en soi et le langage se développe sous plusieurs modes applicatifs jusqu'à former un environnement complet de développement. Le langage se caractérise par une portabilité importante. Pour un langage compilé, son fonctionnement habituel est :

En java :

C'est l'un des avantages de java qui explique notamment qu'il soit associé aux applications internet : comme le code est portable sur n'importe quelle plateforme, concevoir un site qui propose des applicatifs développés en Java ne pose aucun problème et n'importe qui peut les exécuter si il a installé une JVM, tandis que si le code applicatif à exécuter est en C, on ne laisse que les sources sur le site : à charge pour celui qui veut les exécuter de les compiler (en ayant donc ou en se procurant) un compilateur pour le langage des sources et le type de sa machine. La contrepartie de cette portabilité de java est une critique sur la performance du langage qui se poursuit au travers des années.

Développons la notion d'environnement java :

Divers autres termes du monde java : Java est un langage de haut niveau. Par exemple, la notion de pointeur n'apparaît pas explicitement pour le programmeur. Pour un langage de haut niveau, les API sont richement définies ce qui présente un avantage : un certains nombres d'opérations sont transparentes pour le programmeur et un désavantage : certaines opérations sont impossibles ou très complexes.
Fin 2006, java a été licencié sous GPL.

4 C++

Le langage a initialement été écrit par Bjarne Stroustrup. Contrairement à Java, C++ est un langage libre. Il a fait l'objet de normalisation par l'ISO. Normalisation de 1998 pour la base du langage et la libraire standard du C++. Développement à partir du C. ++ étant un opérateur d'incrémentation, C++ pourrait se comprendre comme "1 niveau au dessus du C". La première norme date de 1998, elle a été actualisée en 2003. En 2009, une nouvelle norme C++0x se prépare. Les normes sont implémetées par les EDI et les compilateurs.

Les compilateurs

A partir de fichiers édités par un éditeur de texte et enregistrés au format .cpp, ils produisent un fichier au format .exe. Les compilateurs contiennent des bibliothèques standards qui sont définis par la norme et auxquelles il est possible de faire appel. Certains compilateurs contiennent des bibliothèques en plus. Les principaux compilateurs (source : Wikipedia) :

Les Environnements de développement intégrés

Ce sont des logiciels qui comprennent à la fois un éditeur de code, un compilateur et divers outils : des outils pour debugger du code notamment. Les principaux EDI (source : Wikipedia) :


5 Quel langage ?

Java et C++ sont les deux langages les plus utilisés. Le débat sur le choix de l'un ou l'autre se poursuit et évolue au cours des années du fait notamment de l'évolution des langages. On donne dans ce qui suit les axes principaux de ce débat. Dans les deux cas, il existe une communauté de développeurs et des ressources considérables sur les deux langages. Dans les deux cas, il existe une version officielle du langage et des packages officieux.


D'autres langages objet :
Beaucoup de langages tendent vers l'objet : PHP, Excel...