ANNÉES 1990

Java

En 1991, une équipe d’ingénieurs de Sun Microsystems se lance dans le projet « Green » sous la direction de James Gosling. Leur ambition est de créer un système distribué qui permettrait aux appareils électroniques de dialoguer entre eux dans un réseau hétérogène. L’idée était de proposer aux fabricants d’électronique grand public une technologie adaptée à leurs besoins.

Les ingénieurs démarrent leurs travaux avec C++. Mais la nécessité d’adapter le code à différents processeurs les pousse à envisager des modifications du compilateur. Malgré les extensions possibles, C++ se révèle trop complexe pour répondre à leurs exigences. Cette impasse les conduit à concevoir un nouveau langage : Oak, baptisé ainsi d’après l’arbre que Gosling aperçoit depuis la fenêtre de son bureau.

Oak voit le jour pour programmer des dispositifs de contrôle de télévision interactive et des systèmes domotiques. Après plusieurs mois d’un travail intense, l’équipe accouche d’un système d’exploitation complet, d’une boîte à outils, d’une interface, d’une plateforme matérielle inédite et de trois puces personnalisées. Le tout aboutit au « *7 » (Star 7), que Gosling décrit comme une « télécommande portable ».

L’équipe Green, devenue FirstPerson Inc., répond à un appel d’offres en 1993 pour un système d’exploitation de décodeur et une technologie de vidéo à la demande. Leur solution brille par son excellence technique, mais le marché leur échappe au profit de SGI pour des raisons que Gosling juge non techniques. FirstPerson persiste dans le secteur des décodeurs jusqu’en 1994, date à laquelle la réalité s’impose : ce marché n’est pas viable. L’entreprise disparaît, et la moitié de ses effectifs rejoint Sun Interactive pour travailler sur des serveurs de données vidéo numériques.

Tout bascule vers la mi-1994. Internet et le World Wide Web explosent. L’équipe décide alors de réorienter Oak vers les applications web. Les caractéristiques du langage, notamment son indépendance architecturale et sa neutralité vis-à-vis des plateformes, se prêtent remarquablement à cet environnement.

En janvier 1995, Oak devient Java, un nom disponible à l’enregistrement. Le langage se transforme en outil de création d’applications web. Pour en démontrer le potentiel, l’équipe conçoit HotJava, un navigateur web entièrement écrit en Java, capable d’exécuter des applications Java (les Applets) directement intégrées aux pages web. Netscape et Microsoft s’empareront de cette fonctionnalité. Sun publie ensuite le kit de développement initial (JDK) accompagné de HotJava.

La simplicité de Java frappe d’emblée. Le code se lit et s’écrit aisément, ce qui réduit les risques d’erreurs. L’environnement d’exécution prend en charge automatiquement l’allocation de mémoire et le ramassage des miettes, éliminant ainsi une source majeure de bogues qui empoisonne C ou C++.

Java impose une approche orientée objet rigoureuse, qui structure et modularise la programmation. Son interprétation autorise l’exécution des programmes sur diverses plateformes sans recompilation, grâce à la Machine Virtuelle Java (JVM). Les programmes se compilent en bytecode, un format intermédiaire indépendant du matériel. Cette caractéristique garantit la portabilité des applications Java sur tout système doté d’un interpréteur Java.

La robustesse du langage tient à son système de typage fort et ses vérifications poussées lors de la compilation. L’absence de pointeurs, ces sources récurrentes de problèmes dans d’autres langages, renforce la fiabilité des programmes.

Java se décline ensuite en plusieurs éditions. Java 2 Standard Edition (J2SE) vise les ordinateurs de bureau classiques. Java 2 Enterprise Edition (J2EE) s’adresse aux applications d’entreprise. Java 2 Micro Edition (J2ME) couvre les appareils mobiles et embarqués.

Les améliorations s’enchaînent. Java 1.02, sorti en 1996, souffre de limitations importantes, comme l’impossibilité d’imprimer. Les versions suivantes enrichissent progressivement les fonctionnalités. Java 1.2, publié en décembre 1998 et rebaptisé Java 2 trois jours plus tard, introduit notamment de nouvelles bibliothèques graphiques plus élaborées.

La communauté des développeurs adopte Java pour des raisons variées. Le langage simplifie la création d’applications réseau, héritage de sa conception initiale pour les systèmes distribués. Son modèle de sécurité intégré protège contre les programmes malveillants. Ses capacités multitâches facilitent le développement d’applications performantes et réactives.

L’architecture de la Machine Virtuelle Java témoigne de la sophistication technique du système. Le chargeur de classes, la zone de méthodes, le tas et la pile Java composent cet environnement d’exécution. Le moteur d’exécution combine un interpréteur et un compilateur Just-In-Time qui optimise les performances en traduisant le bytecode en code natif.

Java a transformé la programmation web en introduisant les applets, qui exécutent du code dans les navigateurs. Cette innovation a enrichi l’expérience utilisateur sur Internet et inspiré de nouvelles approches du développement web.

La philosophie « Write Once, Run Anywhere » (écrire une fois, exécuter partout) a influencé la conception des langages et plateformes ultérieurs. Le modèle de sécurité de Java, son ramasse-miettes automatique et son approche de la programmation orientée objet ont établi des standards qui perdurent dans le développement logiciel contemporain.