Nicolas DAILLY
www.dailly.info > Dossiers techniques > Java > Le langage JAVA

Le langage JAVA

a. Introduction

Le but de cette présentation est d’aborder les spécificités du langage Java par rapport aux autres langages, et d’expliquer pourquoi, sous beaucoup d’aspects, Java est un langage moderne qui se démarque des autres langages existants. Les problèmes de programmation ne seront en aucune façon abordés ici : pour cela, le lecteur se référera aux nombreux ouvrages existants sur le sujet.

b. Petit historique

Java est un langage récent développé par Sun Microsystems depuis la fin des années 1980. C’est un langage qui a été initié par un des ingénieurs de Sun Microsystems qui trouvait les langages existants mal adaptés à ses besoins. Il a ainsi développé un petit langage, ancêtre de Java, destiné à être utilisé pour la programmation d’appareils électroménagers. Ce langage a donc été conçu pour fonctionner sur une multitude de plates-formes différentes plus ou moins évoluées. La première version de Java, tel qu’il se présente aujourd’hui, a été mise au point en 1991. Java a connu depuis un essor considérable, notamment dans le domaine des applications distribuées via Internet, grâce au soutien de Netscape depuis 1995.

c. Java, une programmation orientée objet

Java est un langage de programmation orientée objet (POO). Les concepts de ce type de programmation ne seront pas rappelés ici. La principale caractéristique du langage Java est qu’il a été conçu directement comme un langage de POO contrairement au C++ où l’aspect objet n’est qu’une extension du langage C. Ainsi, en C++, il est toujours possible de programmer sans utiliser la bibliothèque objet, ce qui est beaucoup moins naturel en Java. Cette spécificité permet une meilleure lisibilité des programmes, une plus grande organisation des lignes de codes et un traitement des erreurs plus important.

L’aspect purement objet du langage Java permet une meilleure répartition du travail entre les programmeurs qui peuvent développer ou utiliser différents objets sans se préoccuper des traitements réalisés à l’intérieur. De plus, il est beaucoup plus facile d’adapter et de faire évoluer les spécificités d’un objet à partir du moment où, vu de l’extérieur, cet objet réalise les même actions. Ainsi, les objets mis en œuvre en Java sont réutilisables à souhait. C’est ce principe qui fait que, depuis sa création, Java a connu une formidable expansion de ses bibliothèques.

d. Java, un langage portable

Java est un langage qui bénéficie d’une excellente portabilité. L’utilisateur peut ainsi développer un programme sous Windows et l’exécuter dans des environnements et des architectures diverses tel que MacOS, Linux, BeOS et bien d’autres encore.

Pour cela, les programmes compilés Java n’utilisent pas directement le processeur de la machine. Ils se servent d’une machine virtuelle Java, petit programme qui se charge d’interpréter le code compilé et de l’adapter à la machine sur laquelle il tourne. Le seul inconvénient est la nécessaire existence d’une machine virtuelle pour tous les systèmes sur lesquels l’utilisateur souhaite utiliser le programme (et que cette machine virtuelle soit bien entendu installée). L’interprétation du programme par la machine virtuelle entraîne cependant un ralentissement par rapport à des programmes écrits en C++, qui eux ne sont compilés que sur un seul type de machine. Ce qui est gagné en portabilité, est donc perdu en rapidité d’exécution. Ceci reste néanmoins un problème infime dans les usages courants puisque la puissance de calcul des ordinateurs est en constante progression.

La grande portabilité du langage Java fait qu’il est particulièrement utile pour la diffusion d’applications via internet. Ce langage a donc, dés 1995, été intégré au navigateur Netscape ; Internet Explorer ayant été obligé de suivre son concurrent peu après. Il faut cependant noter que les navigateurs ont souvent une ou plusieurs versions de retard. Ainsi, peu sont ceux qui supportent aujourd’hui la deuxième mouture du langage (Java 1.2.x et 1.3.x). Si Java reste, à ce jour, le principal langage de programmation d’applets, il est de plus en plus utilisé pour la programmation de servlets.

Enfin, le développement d’un langage portable comme Java va de pair avec la multiplication des environnements de travail, et notamment avec le besoin des éditeurs de développer leurs logiciels aussi bien pour des environnements Windows que pour Linux et MacOS.

e. Autres caractéristiques de Java

Java est un langage qui reprend, pour une bonne part, les spécificités du C++. Il présente cependant des différences notables par rapport à ce dernier. Ainsi, la syntaxe pointeur, responsable de nombreuses erreurs, est ici remplacée par la notion de référence qui, dans bien des cas, entraîne moins de confusions. A tout cela s’ajoute un gestionnaire d’allocation et de libération de mémoire totalement transparent pour l’utilisateur : plus besoin, comme en C++ d’allouer ou de libérer la mémoire. Quand celle-ci vient à manquer, un processus, appelé " Garbage Collector ", vient libérer les ressources mémoires qui ne sont plus utilisées. Ce mécanisme, bien pratique, entraîne tout de même une utilisation plus importante du processeur par rapport au C++ où la libération de la mémoire est implémentée en dur : le gain de fiabilité est donc, encore une fois, réalisé au détriment de la rapidité d’exécution. Mais ce qui est le plus ennuyeux c’est que les programmes écrits en Java sont beaucoup plus gourmands en mémoire que ceux écrits dans la plupart des autres langages existants.

Java utilise des notations normalisées lorsque les capacités de stockage des types de bases sont dépassées. Ceci permet d’éliminer les erreurs rencontrées couramment en C, où lorsque ce dépassement est constaté, un " bouclage " est effectué (un nombre entier trop grand par exemple devenant un entier négatif). Java utilise également un mécanisme de lancement et de récupération d’erreurs extrêmement puissant. Il peut même parfois se révéler pratique, pour certains traitements particuliers, de générer une erreur qui sera rattrapée plus loin au cours de l’exécution du programme.

Il faut également noter la disparition, par rapport au C++, de la notion d’héritage multiple - remplacé par la notion d’interface - et l’impossibilité de redéfinir les opérateurs.

f. Conclusion : Java, un langage moderne

A travers toutes ses spécificités, il faut remarquer que le langage Java synthétise une grande partie des possibilités des autres langages existants, tout en y gommant certains des principaux défauts. Le développement d’un langage portable va de pair avec la multiplication des environnements de travail et notamment l’explosion des systèmes d’exploitation alternatifs à Windows, dont l’un des principaux représentants est Linux. Java est donc un langage, communément reconnu comme étant relativement moderne, et dont le potentiel n’est plus à démontrer.

Retour à la liste des articles


© 2000-2017 ~ Nicolas Dailly
Page générée le 25/02/2017 à 14:42:10 ~ Site réalisé avec SPIP