Le 23 mai 1995, John Gage, Sun Microsytems et Marc Andreessen, Netscape, montaient sur scène et annonçaient à l'audience du SunWorld que la technologie Java était réelle, officielle et qu'elle serait incorporée au navigateur Netscape. « Un nouvel environnement de programmation orienté objet révolutionnaire », ainsi était lancé officiellement le langage qui allait rencontrer le succès que l'on connaît aujourd'hui.
La petite histoire
Java fut créé à l'origine en 1991 par une petite équipe interne de 13 personnes chez Sun, « the Green Team », menée par Patrick Naughton, Mike Sheridan et James Gosling (« le père de Java »). Initialement, le projet « the Green Project » consistait à imaginer et montrer le futur des appareils numériques. Leur première démo en 1992 présentait une télécommande numérique sur écran tactile embarquant un système qui allait devenir plus tard Java. Le langage est d'abord baptisé Oak (le chêne) et il est déjà fortement orienté objet. Mais déjà l'équipe pressentait les possibilités d'Internet et du Web. Java fut conçu pour être léger et portable à travers le réseau des réseaux. En 1994, le langage est adapté au Web : de petites applications (applets) peuvent se lancer au sein du navigateur Web. Le langage est alors baptisé Java, l'île productrice de café, la boisson favorite des programmeurs.

Après le lancement officiel en 1995, les cinq premières années de Java furent tumultueuses et pleines d'annonces. En janvier 1996, ce fut la première release du JDK (Java Developer Kit). En mai, la première conférence développeur JavaOne lança les technologies JavaBeans, servlets, Java Media API entre autres. En octobre, étaient annoncés le premier compilateur JIT (Just-In-Time) et l'API Java Card.

En mars 1997, ce fut l'introduction de l'API JNDI (Java Naming and Directory Interface). En avril, la technologie EJB (Enterprise JavaBeans) était annoncée. Quant à la technologie JFC (Java Foundation Classes), elle sera incluse dans la plate-forme Java.

L'année 1998 vit l'avènement de Java 2 Platform. Java 2 est porté sur Linux et en décembre le programme JCP (Java Community Process) était formalisé.

En 1999, la technologie Jini est annoncée. Java HotSpot et JavaServer Pages étaient dévoilés. En juin, les trois éditions de Java platform étaient annoncées : J2SE, J2EE et J2ME. La plate-forme J2EE était lancée en décembre.

L'an 2000 est la sortie de J2SE v1.3. Les annonces se font plus rares.

En 2001, Java Web Start 1.0 est lancé.

En 2002, J2EE v1.4 beta est lancé.

En 2004, Java 5.0 (Tiger) est lancé.

En 2005, Java a dix ans !

Les raisons du succès

Aujourd'hui, Java c'est plus de 1,75 milliard d'appareils supportant le langage : 650 millions de PC, 579 millions de mobiles et PDA, 750 millions de smart cards, etc. On recense 4,5 millions de développeurs Java et il existe 22 serveurs d'application. Rarement dans l'histoire de l'informatique un langage n'avait atteint une telle notoriété en si peu de temps.

Les raisons de ce succès tiennent d'abord à la portabilité du langage. Conçu pour être écrit une fois et exécuté partout (« Write once run everywhere »), Java a permis à des milliers d'éditeurs et de constructeurs de proposer des produits supportant le langage, échappant ainsi l'hégémonie de Microsoft. Des éditeurs comme IBM, BEA, Oracle commercialisent des serveurs d'applications et des environnements de développement basés sur l'infrastructure normalisée J2EE.

L'autre raison du succès est le processus communautaire. Le JCP permet de mettre les gens d'accord sur des standards et permet à Java d'avancer et d'innover.
Les challenges à relever
Mais si la portabilité de Java est son point fort, la compatibilité est son point faible. Car au fil des années et des innovations technologiques, le credo « write once run everywhere » est de moins en moins vérifié. A tel point qu'une infrastructure développée sur un serveur d'application donné est rarement transportable telle que sur un autre serveur d'application. Quant au bytecode, il rencontre encore des problèmes de relecture par certaines machines virtuelles dus à des spécificités parfois obscures.

Les défauts de jeunesse de Java, les performances insuffisantes et la course effrénée aux nouvelles versions, commencent à s'estomper. Java s'assagit. Mais Java doit faire face aujourd'hui à deux nouveaux challenges. D'une part, la concurrence met une pression de plus en plus forte. D'autre part, la communauté Open Source, qui soutient depuis toujours ce langage, met également la pression pour libérer le langage.
Une concurrence pressante
Microsoft, focalisé sur le poste de travail, a pris tardivement le virage Internet. Le géant de Redmond n'a pas vu venir le succès de Java qui s'est imposé dans les grands projets d'entreprise et dans les infrastructures avec J2EE. Mais il a rapidement réagi et en 2001 lançait sa plate-forme .NET et son langage C#. Parti avec près de cinq ans de retard sur J2EE, la plate-forme .NET a aujourd'hui rattrapé son retard et les nouveaux projets .NET cohabitent aujourd'hui à égalité avec les projets Java. La philosophie de .NET est aux antipodes de Java : elle est le fruit d'un unique éditeur et ne tourne que sur des plates-formes Windows. Mais elle séduit de nombreux développeurs par sa cohérence et sa facilité de développement. De ce côté, Java doit encore faire un effort pour simplifier le développement.

La concurrence, c'est aussi ces langages du Web qui connaissent un succès encore plus fulgurant que Java : PHP et Python. Ces langages séduisent par leur simplicité et leur statut de « libres ». Même s'ils n'atteignent pas l'universalité et la sophistication de Java, ils suffisent largement à la plupart des applications qui fleurissent sur le Web.
Une popularité en déclin ?
Si l'on se réfère à l'indice TIOBE, Java n'est plus le langage préféré des développeurs depuis un an. Il a cédé sa couronne au bon vieux langage C. Rappelons que l'indice mensuel TIOBE Programming Community donne une indication sur la popularité des langages. Il est basé sur la disponibilité mondiale d'ingénieurs qualifiés, de formations et d'éditeurs tiers. Le moteur de recherche de Google est utilisé pour calculer le classement. L'index TPC ne mesure pas la qualité du langage, mais donne des indications stratégiques sur le choix d'une compétence à obtenir pour répondre aux besoins du marché. En mai 2005, le langage C obtenait un indice de 18,5, suivi par Java avec 17,4, Perl avec 10,5, C++ avec 9,9 et PHP avec 9,2.

Plus significatif, la courbe de tendance sur les quatre dernières années montre que Java décline très légèrement depuis 2001 pour marquer un net recul en 2004 cédant sa première place au langage C. De son côté PHP parti de presque zéro a progressé régulièrement pour atteindre aujourd'hui les 10%.
La pression du libre
Sun a toujours entretenu des relations ambigües avec la communauté Open Source. Depuis toujours le constructeur californien soutient les standards ouverts. Et sa filiation Unix lui confère les mêmes origines que le mouvement Open Source, d'où un sentiment de faire partie de la même famille. Mais Sun s'est longtemps montré frileux vis-à-vis de l'Open Source. Linux était tout de même un sérieux concurrent de son Unix maison Solaris. Ce n'est qu'en 1999 que Sun adopte Linux. Sun contribue à de nombreux projets Open Source mais sa stratégie reste essentiellement basée sur la propriété intellectuelle. Notamment le langage Java reste pour la communauté Open Source un bastion qu'elle aimerait voir se libérer.

Depuis quelques mois, la communauté, Richard Stallman en tête presse Sun de libérer son langage, soutenu entre autres par IBM. Mais le constructeur défend sa position en arguant le maintien de la cohérence du langage. La réponse pourrait bien venir d'Apache qui a récemment annoncé son intention de lancer un projet de Java en Open Source, nom de code Harmony. Le projet est soutenu par Sun, sans doute une manière de se décharger de cette responsabilité, sachant qu'il ne croit guère en la viabilité du projet. Finalement, Sun s'en sort bien !