Aller au contenu principal
Bethemesh
BiographieHistoire de l’informatique

James Gosling : l'ingénieur à l'origine de Java

Comment James Gosling et l'équipe Green de Sun ont conçu Java : d'Oak aux machines virtuelles, de la portabilité promise à l'héritage du langage.

Publié le 17 août 2026Lecture : 8 minPar Équipe Bethemesh
Débutant
Portrait de James Gosling, principal concepteur du langage Java
Afficher le sommaire
  1. Programmer au-delà de la station de travail
  2. Du projet Green à Oak
  3. Le Web change la trajectoire du langage
  4. Un langage défini par ses compromis
  5. De la machine virtuelle à une plateforme durable
  6. Le rôle de Gosling dans une œuvre collective
  7. Pourquoi James Gosling compte encore
  8. Chronologie
  9. Questions fréquentes
  10. James Gosling a-t-il créé Java seul ?
  11. Pourquoi Oak a-t-il été renommé Java ?
  12. Java et JavaScript sont-ils liés ?
  13. Que signifie « Write once, run anywhere » ?
  14. Java est-il toujours utilisé sans les applets ?
  15. Quelle est la contribution la plus durable de Gosling ?

James Gosling est souvent présenté comme le « père de Java ». La formule est pratique, mais elle masque la question qui rend son travail intéressant : comment faire fonctionner le même logiciel sur des machines très différentes, sans renoncer à la sûreté nécessaire à des appareils connectés ?

Au début des années 1990, Gosling cherche cette réponse avec une petite équipe de Sun Microsystems. Le résultat ne naît ni comme un langage pour les sites web ni comme le projet d’un inventeur isolé. Oak, futur Java, est d’abord un élément du projet Green, une expérimentation collective sur l’informatique embarquée. Son passage au Web lui donnera ensuite une visibilité mondiale.

Programmer au-delà de la station de travail

James Arthur Gosling naît en 1955 près de Calgary, au Canada. Après des études à l’université de Calgary, il soutient en 1983 un doctorat à l’université Carnegie-Mellon. Sa thèse porte sur la manipulation algébrique des contraintes, mais son parcours révèle déjà un goût pour les outils de programmation : il travaille notamment sur un éditeur de texte qui contribuera à l’histoire d’Emacs.

Il rejoint Sun Microsystems en 1984. L’entreprise vend alors des stations de travail fondées sur Unix et mise sur les réseaux. À la fin de la décennie, Sun comprend que l’informatique pourrait aussi se déplacer vers des appareils grand public : boîtiers interactifs, télécommandes, terminaux et équipements dotés de processeurs variés.

Cette diversité pose un problème. Un programme compilé directement pour un processeur doit généralement être adapté ou recompilé pour un autre. Les langages courants donnent par ailleurs aux programmeurs un contrôle qui peut provoquer des erreurs de mémoire difficiles à détecter. Pour un appareil distribué à grande échelle, ces défauts coûtent cher.

Du projet Green à Oak

En 1991, Patrick Naughton, Mike Sheridan et James Gosling lancent chez Sun le projet Green. Gosling commence par envisager C++, mais juge difficile d’y garantir la simplicité, la portabilité et la robustesse recherchées. Il conçoit alors Oak, nommé d’après un chêne visible depuis son bureau.

Oak conserve une syntaxe familière aux programmeurs de C et C++, tout en écartant plusieurs sources de complexité. Le langage impose une gestion automatique de la mémoire, ne propose pas l’arithmétique générale sur les pointeurs et organise les programmes autour de classes. Il est compilé non vers le code d’un processeur précis, mais vers un format intermédiaire : le bytecode.

Ce bytecode est exécuté par une machine virtuelle adaptée à chaque système. La séparation est essentielle : le compilateur produit un programme commun, tandis que la machine virtuelle prend en charge les particularités de la plateforme. Des vérifications du bytecode et un environnement d’exécution contrôlé doivent aussi limiter ce qu’un programme téléchargé peut faire.

L’équipe réalise un prototype de terminal interactif, Star7, et une interface nommée Duke. Le marché visé ne se concrétise pourtant pas. Oak possède une architecture prometteuse, mais pas encore son terrain d’adoption.

Le Web change la trajectoire du langage

En 1993 et 1994, le Web quitte les laboratoires et gagne le grand public. Les navigateurs affichent des documents sur des ordinateurs très différents : exactement le type d’environnement hétérogène auquel Oak devait répondre.

L’équipe réoriente alors son travail vers le navigateur. Oak doit être renommé, le nom étant déjà protégé ; Java est annoncé publiquement en 1995 avec le navigateur HotJava. Les applets, petits programmes intégrés aux pages, montrent qu’un même bytecode peut être téléchargé puis exécuté sur plusieurs systèmes.

Le slogan « Write once, run anywhere » résume cette ambition. Il ne signifie pas que toutes les plateformes se comportent toujours à l’identique : bibliothèques, interfaces graphiques, versions de machine virtuelle et performances peuvent diverger. Il désigne plutôt un contrat d’architecture qui déplace une grande partie du travail d’adaptation vers la plateforme Java.

Les applets ont disparu, notamment parce que les greffons de navigateur ont créé des problèmes de sécurité, de performance et d’interopérabilité. Réduire Java aux applets serait cependant manquer l’essentiel. Le langage et sa machine virtuelle trouvent une place durable dans les applications d’entreprise, les serveurs, les outils de développement et, indirectement, l’écosystème Android.

Un langage défini par ses compromis

Java n’invente séparément ni la programmation orientée objet, ni le ramasse-miettes, ni les machines virtuelles. Sa réussite vient de la manière dont ces idées sont combinées et rendues accessibles dans un ensemble cohérent.

Le typage statique permet de détecter certaines erreurs avant l’exécution. La gestion automatique de la mémoire évite au programmeur de libérer manuellement chaque allocation, sans supprimer pour autant tous les risques de fuite ou de consommation excessive. Les exceptions structurent la remontée des erreurs. La bibliothèque standard fournit dès l’origine des abstractions communes pour les réseaux, les fichiers, les interfaces et les tâches concurrentes.

Ces choix impliquent des coûts. Une machine virtuelle ajoute une couche d’exécution ; le ramasse-miettes peut introduire des pauses ; la compatibilité à long terme limite parfois la vitesse à laquelle un langage peut simplifier son passé. Les compilateurs à la volée, l’évolution des collecteurs de mémoire et les nouvelles versions du langage ont progressivement réduit ces contraintes.

De la machine virtuelle à une plateforme durable

La première promesse de Java repose sur l’interprétation du bytecode, mais cette solution peut être plus lente qu’un programme compilé directement pour le processeur. Les machines virtuelles évoluent donc vers la compilation à la volée, ou JIT : elles observent le programme en cours d’exécution, repèrent les portions fréquemment utilisées et les traduisent en code machine optimisé.

Cette stratégie transforme une faiblesse apparente en possibilité d’adaptation. Un compilateur statique connaît le programme avant son lancement ; une machine virtuelle peut en plus connaître les chemins réellement empruntés, les types effectivement rencontrés et la charge de la machine. Elle peut optimiser, puis revenir sur certaines décisions si ses hypothèses cessent d’être valides.

La sécurité suit une évolution comparable. Les premières applets reposent sur un modèle de bac à sable destiné à limiter l’accès aux fichiers et au système. La multiplication des vulnérabilités montre toutefois qu’une frontière logicielle complexe n’est jamais une garantie absolue. Java conserve des mécanismes de vérification et d’isolation, mais le navigateur cesse progressivement d’être son environnement principal.

Sun publie une grande partie de Java sous licence libre à partir de 2006, autour du projet OpenJDK. Cette ouverture ne supprime ni les marques, ni toutes les tensions de gouvernance, mais elle donne à plusieurs organisations la possibilité de construire et de maintenir des distributions compatibles. Java passe ainsi d’un produit principalement piloté par Sun à une plateforme soutenue par plusieurs entreprises et communautés.

Le rôle de Gosling dans une œuvre collective

Gosling est le principal concepteur du langage et l’un de ses porte-parole les plus visibles. La spécification, les bibliothèques, la machine virtuelle et l’écosystème sont toutefois le produit de nombreux ingénieurs, auteurs et communautés. Patrick Naughton, Mike Sheridan, Bill Joy, Guy Steele et des équipes successives de Sun ont joué des rôles distincts dans cette construction.

Cette précision ne diminue pas l’apport de Gosling. Son travail a fixé une direction : privilégier la lisibilité, la portabilité et la vérification, tout en restant assez proche de la famille C pour être adopté par une large population de développeurs.

Après l’acquisition de Sun par Oracle, Gosling quitte l’entreprise en 2010. Il travaille ensuite brièvement chez Google, puis chez Liquid Robotics et Amazon Web Services. Java, lui, poursuit une évolution qui ne dépend plus d’une seule personne.

Pourquoi James Gosling compte encore

L’héritage de Gosling ne se mesure pas seulement au nombre de programmes écrits en Java. Il apparaît dans une idée devenue familière : distribuer un logiciel sous une forme intermédiaire et confier à un environnement d’exécution commun la portabilité, l’optimisation et une partie de la sécurité.

La machine virtuelle Java accueille aujourd’hui plusieurs langages, dont Kotlin, Scala et Clojure. Cette longévité montre que l’infrastructure conçue autour de Java a dépassé le langage initial. Elle rappelle aussi qu’un langage de programmation réussit rarement par sa syntaxe seule : outils, spécifications, bibliothèques, compatibilité et communauté déterminent sa durée de vie.

Chronologie

  • 1955 : naissance de James Gosling près de Calgary, au Canada.
  • 1977 : obtention d’un diplôme en informatique à l’université de Calgary.
  • 1983 : doctorat en informatique à l’université Carnegie-Mellon.
  • 1984 : arrivée chez Sun Microsystems.
  • 1991 : lancement du projet Green avec Patrick Naughton et Mike Sheridan ; conception d’Oak.
  • 1992 : démonstration du terminal expérimental Star7.
  • 1994 : réorientation d’Oak vers les usages du Web.
  • 1995 : annonce publique de Java et du navigateur HotJava.
  • 1996 : publication du JDK 1.0.
  • 2002 : Gosling reçoit avec l’équipe Java le Software System Award de l’ACM.
  • 2006 : Sun annonce la publication de Java sous licence libre ; OpenJDK devient l’implantation de référence ouverte.
  • 2010 : il quitte Oracle après l’acquisition de Sun.
  • Aujourd’hui : Java et la JVM restent des plateformes majeures pour les logiciels de longue durée.

Questions fréquentes

James Gosling a-t-il créé Java seul ?

Non. Il en est le principal concepteur, mais Java provient du travail de l’équipe Green puis de nombreuses équipes de Sun. La spécification et l’écosystème ont également été façonnés par des contributeurs extérieurs.

Pourquoi Oak a-t-il été renommé Java ?

Le nom Oak était déjà utilisé comme marque. L’équipe a donc choisi un nouveau nom avant l’annonce publique du langage en 1995. « Java » ne décrit pas une caractéristique technique particulière.

Java et JavaScript sont-ils liés ?

Non. Java est un langage compilé en bytecode pour une machine virtuelle ; JavaScript a été créé chez Netscape comme langage de script pour le navigateur. Son nom a profité de la visibilité de Java, ce qui entretient encore la confusion.

Que signifie « Write once, run anywhere » ?

Le même programme compilé doit pouvoir s’exécuter sur toute plateforme disposant d’une machine virtuelle compatible. C’est un objectif de portabilité, pas la garantie que chaque détail graphique, chaque bibliothèque ou chaque performance sera identique.

Java est-il toujours utilisé sans les applets ?

Oui. Les applets ont disparu des navigateurs, mais Java demeure employé dans les services côté serveur, les systèmes d’entreprise, les outils et de nombreuses infrastructures. La JVM exécute aussi d’autres langages.

Quelle est la contribution la plus durable de Gosling ?

Avoir assemblé des choix de langage et d’exécution autour d’un contrat de portabilité crédible. La longévité de la JVM et de son écosystème montre que cette architecture compte autant que la syntaxe de Java.

Sources et références

  1. 1.James Gosling, Bill Joy et Guy Steele --- The Java Language Specification
  2. 2.Oracle --- A Brief History of Java
  3. 3.Computer History Museum --- Java: The Inside Story
  4. 4.ACM --- James Gosling, 2002 Software System Award

Collection

Langages de programmation

  1. 01Grace Hopper : des premiers compilateurs à COBOL
  2. 02John Backus : FORTRAN, la notation BNF et le refus du code machine
  3. 03Dennis Ritchie : le langage C au cœur d'Unix
  4. 04FORTRAN : prouver qu'un compilateur peut rivaliser avec l'assembleur
  5. 05Le langage C : rendre les systèmes portables sans masquer la machine
  6. 06Niklaus Wirth : de Pascal à Oberon, concevoir par la simplicité
  7. 07Bjarne Stroustrup : concevoir C++ sans renoncer aux performances
  8. 08Pascal : apprendre à programmer en rendant la structure visible
  9. 09C++ : de C with Classes à un langage généraliste
  10. 10La programmation orientée objet : objets, messages et abstractions réutilisables
  11. 11Guido van Rossum : créer Python pour rendre le code lisible
  12. 12Brendan Eich : JavaScript, du prototype de Netscape au standard du Web
  13. 13James Gosling : l'ingénieur à l'origine de Java
  14. 14Python : la lisibilité, les batteries incluses et un écosystème mondial
  15. 15Java : écrire une fois, exécuter partout
  16. 16JavaScript : le langage qui a rendu le Web interactif
  17. 17Ken Thompson : d’Unix au langage Go, la simplicité comme méthode
  18. 18John McCarthy : Lisp et l’idée de programmer avec des symboles
  19. 19Alan Kay : Smalltalk et l’ordinateur comme média personnel
  20. 20Barbara Liskov : l'abstraction qui a rendu le logiciel modulaire
  21. 21Robin Milner : ML, la preuve assistée et les langages de l’interaction
  22. 22Brian Kernighan : AWK, Unix et l'art d'expliquer le code
  23. 23Anders Hejlsberg : de Turbo Pascal à C# et TypeScript
  24. 24Larry Wall : Perl, le langage qui a relié les outils d'Internet
  25. 25Yukihiro Matsumoto : Ruby et le bonheur du programmeur
  26. 26Rasmus Lerdorf : PHP et la démocratisation du Web dynamique
BiographieHistoire de l’informatiqueDébutant

Dennis Ritchie : le langage C au cœur d'Unix

Comment Dennis Ritchie a conçu le langage C et contribué à Unix, deux fondations qui ont rendu les logiciels système plus portables.

3 août 20268 minLire
HistoireHistoire de l’informatiqueDébutant

Java : écrire une fois, exécuter partout

Du projet Green à OpenJDK, découvrez comment Java a construit sa portabilité autour du bytecode, de la JVM et d’un écosystème durable.

17 août 202617 minLire

Cet article vous a-t-il été utile ?