next up previous contents
suivant: Pourquoi une applet monter: Java précédent: Java   Table des matières

Historique

Au début de l'année 1991, une petite équipe travaillant pour Sun Microsystems a été déplacée dans un autre département pour travailler sur un projet baptisé Green Project voué à la réalisation d'applications pour les systèmes électroménagers et HI-FI. L'équipe était formée de trois ingénieurs : James Gosling (le créateur d'Emacs), Patrick Naughton et Mike Sheridan. Quelques mois plus tard, ils donnent les lignes caractéristiques du langage qu'il leur fallait : portable, facile à utiliser et produisant un code compact, c'est ainsi que naquit Oak. Le projet Green a vite été dissout à cause surtout des aléas du marché et de l'échec d'un gros contrat passé avec Time-Warner, pour un projet de télévision interactive.

Pendant la même période, le Web était en plein essor, et le navigateur NCSA Mosaic commençait à avoir de plus en plus de succès. Sun a alors de nouveau remis l'équipe au travail, mais vers le Web cette fois ci.

La fin de l'année 1994 vit le changement de nom de Oak (trop proche de Awk) en Java (marque de café que l'équipe buvait sans arrêt). De plus le premier compilateur écrit en C par Gosling fût abandonné pour un compilateur écrit en Java par Arthur Van Hoff. Java naquit vraiment en 1995 quand les premier navigateurs acceptant d'inclure des applets furent produits et quand Sun a mis le JDK (Java Developement Kit) en téléchargement libre sur son site Internet.

La rapidité du succès de Java est due à la technique de distribution utilisée par Sun, qui a consisté à fournir gratuitement les outils nécessaires pour commencer un développement, et à des campagnes de formation, information et communication qui ont largement dépassé le milieu des développeurs. Ces procédés commerciaux n'ont fait qu'accélérer et agrandir l'expansion de ce langage. En effet, Java, a apporté des solutions à des problèmes qui devenaient de plus en plus importants, et grâce à certaines fonctionnalités, a beaucoup facilité la programmation de tâches réservées à quelques illuminés auparavant.

Voici quelques unes des caractéristiques qui ont aidé à l'adoption quasi unanime de ce langage, et qui ont motivé notre choix :

- Portabilité

La portabilité de Java est indispensable pour Internet où coexistent de nombreuses machines et des systèmes d'exploitation différents. Un programme Java n'est pas écrit pour une machine particulière à la base, il est ensuite compilé, pour être converti en une sorte de code intermédiaire ou byte-code (ce sont les fameux fichiers .class). Ce code est en réalité conçu pour la machine virtuelle Java (JVM)[34].

Ensuite, chaque plate-forme dispose d'un interprète généralement intégré dans le navigateur, qui fait la conversion du code de machine virtuelle en code natif. Java pallie donc la lenteur habituelle des langages interprétés par la première compilation qui génère un code binaire plus facile à convertir en code natif.

Dans le cas où Java n'est pas utilisé en réseau, il existe un compilateur intégral baptisé JIT (Just-In-Time) qui compile directement les programmes Java en code Natif, naturellement plus rapide à l'exécution. Enfin, pour augmenter l'efficacité, Sun a conçu des machines équipées d'une puce Java qui répondent aux spécifications de la machine virtuelle Java. L'étape de conversion en code natif n'est donc plus nécessaire.

- programmation objet (syntaxe voisine du C++)

Même s'il s'inspire de la syntaxe du C++, Java à été écrit en tant que langage objet dès le départ. Il apporte par rapport au C++ (qui n'est qu'une extension du C) beaucoup de nouveautés : pas de structures et d'unions, pas de define, pas de manipulation directe des pointeurs, pas d'héritage multiple. En Bref, Java est beaucoup moins complexe que le C++.

- interface graphique

Java, notamment à travers sa bibliothèque AWT (Abstract Window Toolkit), fournit en standard la possibilité de programmer des interfaces graphiques très intuitives. Le développeur n'a donc plus à se soucier de l'emplacement des boutons ou des menus, leur gestion est presque automatique.

- multithreading

Un programme peut être amené à créer un ou plusieurs sous-processus, appelés threads, afin d'exécuter en parallèle plusieurs opérations simultanées. Un thread est donc une unité d'exécution plus petite qu'un processus, puisque même s'il est doté d'une priorité, il ne dispose pas d'espace mémoire propre, il partage le même espace avec tous les autres threads du même processus. La gestion des threads, de leur accès mémoire et de leur partage des ressources est facilité en Java, par l'implémentation de fonctionnalités comme la synchronisation, les sémaphores et la gestion dynamique de la mémoire [20].

- programmation réseau.

Comme pour les threads, Java possède en standard une bibliothèque ou une API (Application Programming Interface) permettant de programmer des applications réseau, en utilisant entre autres des sockets. De plus, il intègre aussi en standard, les protocoles de communication les plus répandus comme TCP, HTTP, FTP, etc., ainsi que la gestion des adresses IP et URL. Il facilite largement ainsi la création des applications client/serveur, et le dialogue sur le réseau.

- gestion dynamique de la mémoire (Garbage collector)

Java dispose d'un Garbage collector qui tourne comme un thread de priorité minimale qui s'active pendant les périodes d'inactivité du processeur. Il libère automatiquement la mémoire associée à un objet qui n'est plus référencé.

- gestion des exceptions

Les erreurs classiques des programmeurs C comme le dépassement de capacité d'un tableau sont évitées en Java. En effet Java gère la notion d'exception, qui permet d'intercepter un problème pendant l'exécution avant de causer l'arrêt du programme. La robustesse de Java est aussi due à l'impossibilité d'accéder directement à la mémoire comme en C via les pointeurs par exemple.

- applets

Une applet est une petite application exécutable directement à travers un navigateur Internet. C'était aussi la vocation première et la grande particularité de Java qui, depuis, a largement évolué et est devenu le standard de l'exécution dynamique sur Internet.

Les applets ont aussi apporté à Java une notoriété auprès du grand public unique en son genre. Des gens qui ne se sont jamais intéressés à la programmation se mettent à faire des petits programmes souvent ludiques pour animer leurs pages Web.

- évolution rapide

Enfin, Java est très jeune et évolue très rapidement il est donc porteur d'avenir, et les équipes qui travaillent dessus sortent de nouvelles bibliothèques répondant aux besoins des développeurs dès que la demande s'en fait sentir.


next up previous contents
suivant: Pourquoi une applet monter: Java précédent: Java   Table des matières
Nabil Bouzaiene 2000-07-12