La contrepartie de cette architecture est une vitesse d'exécution notablement inférieure à
celle d'un code natif.
2. Un environnement libéré
Initialement, Java n'est pas une technologie libre. Jusqu'en novembre 2006, les codes
sources du compilateur et de la machine virtuelle HotSpot VM, machine de référence, sont la
propriété de Sun Microsystems. Pour autant, leur utilisation est gratuite, même en environne-
ment professionnel ou à but commercial.
Par ailleurs, s'il est vrai que le code source de la JVM de Sun est privé, Sun publie l'en-
semble des spécifications qui permettent à des tiers la conception de leur propre machine
virtuelle.
Ces deux facteurs ont permis l'émergence d'un marché décentralisé et même d'une commu-
nauté autour de cette technologie, malgré ses aspects propriétaires.
En novembre 2006, Sun annonce qu'il va progressivement libérer tous les aspects de la
plate-forme : codes sources du compilateur, de sa JVM, du serveur J2EE GlassFish et tout
le code Java son désormais sous licence GNU GPL1. Ceci laisse espérer un accroissement
de la communauté.
3. Développement exclusivement orienté objet
Certains langages, comme le PHP, permettent de programmer en objet, sans y contraindre.
L'objet lui est une surcouche. D'autres, comme le C++, sont une évolution objet d'un langage
procédural. A l'inverse, l'approche objet a dicté la conception de Java, et il n'est pas envisa-
geable de programmer avec ce langage dans le style procédural.
3. Les applications possibles
Java est un langage versatile. Il s'applique à une grande variété d'utilisations.
1. Les applications web
C'est actuellement le domaine dans lequel Java se développe le plus. Beaucoup de sites
web d'envergure fonctionnent avec cette technologie.
En programmation Internet se pose toujours la question de la plate-forme d'hébergement,
souvent imposée par le fournisseur de service. Par son indépendance vis-à-vis de la plate-
forme d'exécution, Java répond bien à cette problématique.
2. Les application graphiques dites "lourdes"
Java permet de construire des applications fenêtrées traditionnelles, avec le principe d'indé-
pendance par rapport au système hôte.
Néanmoins, l'utilisation de Java pour le développement d'application fenêtrées est toujours
restée, jusqu'à présent, assez limitée.
Sun propose depuis longtemps deux librairies graphiques :
•AWT : c'est la bibliothèque historique. Elle exploite les composants2 natifs de la plate-
forme d'exécution. L'avantage est que la réactivité de l'interface est bonne, compa-
rable aux autres types d'interfaces. Mais comme l'application doit pouvoir s'exécuter
1L'extension ClassPath à la licence GNU GPL permet d'utiliser cette JVM GPL sans pour au-
tant que les applications soient elles aussi nécessairement sous licence GPL
2boutons, listes déroulantes, champs texte...
25 juin 2008 – IRD-IS/DSI - support_cours_v1.2.odt
3/44