Java

 

 

 

 

Hit Counter

RETOUR

1. Qu'est-ce-que Java?

Une "nouvelle" génération de logiciels (système d'exploitation, interface utilisateur, langage de programmation,...) et de matériels (processeurs) informatiques.

But initial

Offrir une plateforme de développement de logiciels embarqués pour les produits électroniques de grande consommation (fours, magnétoscopes, voitures, ...).

Apporter une plus grande facilité au développement de ces applications que lors de l'utilisation de plateformes classiques.

Caractéristiques

  • portable,
  • facile à utiliser,
  • produisant un code compact.

Réorientation en cours de route

Ces caractéristiques sont nécessaires dans le cadre du déploiement d'applications sur Internet:

  • portabilité pour l'exécution sur des machines de types différents,
  • facilité de développement via des méthodes informatiques modernes,
  • code compacte pour réaliser des économies de bande passante sur les réseaux.

-> Ces synergies ont amené Java à s'implanter en tant que plateforme de développement pour Internet.

2. Historique

1990 : Debut du développement par Sun Microsystems.

Fin 1994 : Naissance du premier browser Internet (Navigateur) acceptant d'exécuter des programmes ("applets") conçus en JAVA: HotJava de Sun Microsystems.

Mai 1995 : Présentation officielle de Java et HotJava.

Janvier 1996 : Netscape Communications Corporation ajoute les spécifications Java/Java Script à son navigateur Internet Netscape Navigator 2 -> possibilité d'exècution d'applets Java.

Mars 1996 : Kit de développement Java (JDK, Java Development Kit) en version 1.0 en téléchargement libre et gratuit sur le site Web de Sun Microsystems.

Septembre 1996 : Microsoft supporte à son tour Java sur Internet Explorer 3.

Juillet 1997 : Distribution de la version 1.1 de Java et de son kit de développement.

Décembre 1998 : Distribution de la version 1.2: "Java 2".

Janvier 2000 : La version actuelle de Java est encore la version 1.2. Le JDK est en version 1.2.001.

En conclusion, actuellement, seuls les aspects logiciels ont connus un succès public important à travers le développement du WEB et l'intégration de la technologie Java au sein des navigateurs Internet.

Java embarqué et les puces Java sont encore des technologies de laboratoire.

3. Structure

L'environnement Java est constitué de différents éléments:

  • un langage de programmation,
  • des composants préprogrammés (API Java, Application Programming Interface),
  • un compilateur (javac),
  • des programmes destinés à exécuter les applications écrites en java (machines virtuelles Java, JVM) (Java, Appletviewer).
  • ...

Caractéristiques de Java en tant que langage informatique

Programmation orientée objet -> classes, héritage, polymorphisme, interfaces, ...

Syntaxe très proche de celle du C++, mais en plus simple:

  • pas d'héritage multiple,
  • pas de surcharge des opérateurs,
  • pas de gestion explicite de l'emploi de la mémoire,
  • généralisation masquée de la notion de pointeur,
  • ...

Compilation Java

Le programmeur écrit ses fichiers sources (qui contiennent des classes). Il leurs donne l'extension ".java". Il peut utiliser l'API pour faciliter son travail en utilisant des classes déjà écrites.

Ces fichiers sources sont compilés au moyen du compilateur javac pour obtention de fichiers portant l'extension ".class".

Ces fichiers ne sont pas des exécutables au sens classique et sont indépendants:

  • de la machine ayant réalisé la compilation,
  • de la machine sur laquelle sera réalisée l'exécution.

Ces fichiers sont constitués d'un code intermédiaire (bytecode).

Une application peut être composée de un ou plusieurs fichiers .class. Il n'y a pas d'édition de liens et donc pas d'exécutable.

Chaque classe peut être, dans une certaine mesure (gestion automatique des dépendances entre classes), compilée indépendamment des autres et être substituée à la version précédente.

Exécution d'un programme Java

L'utilisateur lance un programme spécifique (la JVM, Java Virtual Machine) destiné à exécuter les fichiers .class constituant une application.

Ce programme transforme à la volée en assembleur le pseudo-code (bytecode) contenu dans les fichiers .class et exécute les instructions assembleur obtenues. On dit qu'il y a "interprètation" du pseudo-code.

Le rôle d'une JVM consiste à réaliser l'interface entre l'ordinateur (le système d'exploitation de l'ordinateur) et les fichiers .class qui sont eux indépendants de l'ordinateur.

Architecture classique

Architecture Java

L'API Java

Elle apporte le support des fonctionnalités suivantes:

  • interface utilisateur (AWT, Swings),
  • communication sur le réseau (Net),
  • gestion des images, des sons, ...
  • structures de données élaborée (vecteurs, listes, tables de haschage, ...),
  • ...

Les JVM (Java Virtual Machine)

Systèmes d'exploitation supportés : Solaris 2.3 et +, Windows 95, Windows NT, Windows 3.1, OS/2 Warp, Linux, Irix, Aix, Unixware 2.0, HP/UX, MVS, Mac OS 7.5 et 8 pour les PowerMacs, 68020, 68030, ...

Navigateurs Internet supportés : Netscape Navigator 2 et +, Internet Explorer 3 et +, Sun HotJava, ...

4. Les applications Java

Il existe deux types d'application en Java:

  • les applications,
  • les applets.

Les applications sont des programmes conçus pour être exécutés dans des JVM fonctionnant directement sous un système d'exploitation.

Les applets sont des programmes conçus pour être exécutés dans les JVM intégrées aux navigateurs WEB et s'appuyant sur le contexte d'exécution de ceux-ci. Les applets sont intégrées au sein des pages WEB. Les fichiers .class qui les représentent sont stockées sur le même site WEB. Ces classes sont téléchargées automatiquement par le navigateur par l'intermédiaire du réseau pour enfin être exécutées dans le navigateur.

Exemple de fichier html intégrant une applet

<applet width="300" height="20" code="Exemple1.class"> Votre navigateur ne prend pas en charge Java </applet>

5. Java, pour quoi faire?

Quelques exemples

Fonctionnalités

  • langage de programmation complet
  • support d'une interface utilisateur
  • support du son
  • support de l'affichage d'images
  • support des connections internet bas niveau (sockets, datagramme, ...)
  • support des connections internet haut niveau (URL)
  • connectivité à des bases de données (JDBC)
  • support de Corba
  • ...

En conclusion

Tout ce qui peut être fait avec un langage de programmation classique peut l'être fait en Java.

6. Faut-il se lancer dans Java? Si oui, à quel prix.

Java ne coute rien, les JDK et les JVM sont gratuits.

Certains éditeurs commercialisent des environnements de développement intégrés. Les principaux sont:

  • Visual J++ de Microsoft,
  • Visual Café de Symantec,
  • JBuilder d'Inprise (Borland),
  • Visual Age d'IBM,
  • ...

Quand employer Java?

Une réponse prudente consiste à dire "Quand un autre produit ou une autre technologie ne fait pas les choses mieux, plus simplement ou plus rapidement".

Il existe un grand nombre de produits ou technologies ayant pour but la réalisation de sites WEB élaborés:

  • Macromedia Flash,
  • Javascript,
  • ASP,
  • Perl,
  • Scripts CGI,
  • ...

Les fonctionnalités apportées par ces produits sont multiples et difficilement énumérables exhaustivement. Ils procurent toutefois deux fonctionnalités principales :

  • la production de page WEB dynamiques,
  • l'exécution de "programmes" au sein de page WEB statiques.

Dans ce cadre, la limitation la plus importante de Java est certainement qu'il n'est pas conçu pour créer du HTML dynamique (conception d'une page WEB à partir d'informations et affichage de cette page sur l'écran du navigateur client).

Les pages visualisées sont statiques. Ce sont les applets qu'elles contiennent qui réalisent les traitements particuliers désirés.

Les points forts de Java sont:

  • Les possibilités de la programmation orientée objet
    • programmation plus simple
    • réutilisabilité du code
  • La connectivité
    • réalisation simplifiée de programmes communiquant
  • La puissance de l'API
    • plusieurs centaines de classes diverses
  • Le déploiement des applications sous forme d'applets
    • Elles sont stockées sur un serveur WEB et chargées à la demande sur les postes clients
      -> pas de stockage sur ces postes,
      -> économie de place,
      -> facilité de la maintenance.
  • La portabilité
    • le bytecode est sensé s'exécuter avec les mêmes résultats sur toute JVM.
  • L'exécution des applets sur les postes clients
    • Les applets sont téléchargées puis exécutées sur les postes clients
      -> Ce sont ces postes qui travaillent et pas les serveurs WEB comme avec d'autres technologies.

Les points faibles de Java sont:

  • L'absence d'HTML dynamique.
  • La necessité de devoir maîtriser la programmation orientée objet
    • Pour un débutant complet, Java, comme tout langage de programmation, est très cher par le temps nécessaire à son apprentissage.
      Cet argument est tempéré par le fait que, comparativement à d'autres langages de programmation (Pascal, C, C++, ...), Java est assez simple à prendre en mains.Pour une personne ayant des connaissances en programmation, le passage à Java sera généralement assez aisé.
      C'est particulièrement le cas pour la conversion depuis C, C++ car Java en est très proche.
    • Un autre aspect est l'apprentissage de l'API Java (quelques dizaines de classes en Java 1.0, plusieurs centaines en Java 1.1, plusieurs milliers en Java 2).
  • Une productivité parfois assez faible
    • Il est fréquent d'avoir à écrire des portions de code importantes pour seulement résoudre des problèmes "simples".
  • La lenteur à l'exécution
    • De 2 à 20 fois moins rapide qu'un programme C équivalent.
  • La charge du réseau et des serveurs
    • Le téléchargement des classes sur le réseau peut surcharger les liens réseaux et les serveurs WEB.
  • La gestion des versions
    • Il est parfois difficile de jongler entre les versions de Java et les versions de JVM
      -> la JVM doit toujours avoir une version supérieure à la version de Java utilisée.

Qu'est-ce-que Java 3D?

Java3D est l'API développée par Sun Microsystems pour l'écriture d'Applications et d'Applets nécessitant des affichages en trois dimensions.

Conçu pour être visualisé au moyen de Netscape Navigator ou Internet Explorer
avec le Plugin Java de Sun
pour les applets Java3D

Remarques, erreurs
nicolas.janey@univ-fcomte.fr