- James Gosling est le créateur de Java, considéré comme un génie pragmatique ayant influencé l’informatique moderne pendant 30 ans
- Issu d’un milieu modeste, il a appris la programmation en assemblant des ordinateurs avec des pièces récupérées dans des décharges, et cet apprentissage autodidacte a ensuite influencé sa philosophie de conception des langages
- Son époque chez Sun Microsystems, où coexistaient farces et innovation, a servi de socle à sa créativité singulière et à sa manière de façonner une culture technique
- Récemment, il a exprimé un fort scepticisme à l’égard des outils d’IA générative et du boom de l’IA, tout en soulignant que l’importance de l’enseignement de la programmation n’a fait que croître
- Le secret de la longévité de Java ne tient pas à son éclat, mais à une philosophie de conception pragmatique axée sans compromis sur la stabilité, la rétrocompatibilité et la productivité des développeurs
Java at 30: The Genius Behind the Code That Changed Tech
- Java fête ses 30 ans le 23 mai. C’est un langage généraliste, orienté objet et de haut niveau qui reste aujourd’hui une technologie clé pour faire fonctionner des systèmes de toutes tailles
- À l’origine même de l’existence de Java se trouvent le sens technique pragmatique et l’intuition créative de James Gosling
- Gosling est parti de l’histoire d’un adolescent canadien indépendant qui assemblait des ordinateurs à partir de pièces récupérées dans des poubelles pour devenir un programmeur de renommée mondiale
- La philosophie « write once, run anywhere » est le symbole de Java, et elle s’est prolongée en une philosophie du langage qui a entraîné un changement fondamental dans la manière de développer les logiciels
- Tout au long de sa carrière, Gosling a concilié excellence technique, esprit joueur et sens éthique affirmé, incarnant une figure de développeur qui a durablement influencé la culture de l’informatique moderne
James Gosling: The Brilliant Mind Behind Java
- James Gosling n’est pas seulement le « père de Java » : c’est aussi un génie humble capable d’expliquer intuitivement des concepts complexes
- Trente ans après la création de Java, il revient sur son parcours technologique et retrace l’évolution des langages et de la culture du développement
The Path To Programming: Resourceful Beginnings
- Dans une enfance marquée par une grande pauvreté, Gosling a développé sa créativité technique en récupérant des téléviseurs dans les poubelles
- Il a assemblé son premier ordinateur à partir d’un rack de relais mis au rebut par le central téléphonique, symbole de son sens mécanique et de ses capacités d’assemblage déjà précoces
- En visitant le centre informatique de l’université de Calgary, il a été fasciné par les écrans, les lumières clignotantes et les lecteurs de bandes, ce qui a éveillé une curiosité pour la programmation qui l’a accompagné toute sa vie
- Il a appris seul en fouillant dans des cartes perforées pour obtenir des mots de passe, et, lycéen, il a créé pour le département de physique de l’université des programmes d’analyse de données satellites, accumulant ainsi une expérience où la programmation était à la fois passion et travail rémunéré
- Ses premières expériences de programmation couvrent le PL/1 sur mainframe IBM, le Fortran, l’assembleur PDP-8 et le code CDC 6400. Avec son ton sobre caractéristique, il mentionne presque en passant qu’« un été, il a travaillé au développement d’un compilateur COBOL », une tâche que beaucoup de programmeurs expérimentés trouveraient déjà redoutable
Academia to Industry: Finding His Way
- Gosling décrit le monde académique comme « un laboratoire qui utilise les doctorants comme main-d’œuvre bon marché », révélant un point de vue direct, plus attaché au concret qu’à la théorie
- Pendant son doctorat à Carnegie Mellon, il travaille aussi dans une startup pour acquérir une expérience réelle, puis termine son cursus, concrétisant un parcours souple entre industrie et université
- Son premier emploi est chez IBM Research, mais il qualifie l’entreprise de société « dévouée à se tirer une balle dans le pied », conservant ainsi une lecture lucide du fonctionnement des entreprises et de la stratégie technologique
- Ces premières expériences ont ensuite servi de base à sa compréhension très ancrée dans le réel des cultures d’organisation, qui influencera sa manière de travailler chez Sun Microsystems
The Sun Days: Innovation and Pranks
- Parmi ses souvenirs les plus heureux chez Sun, Gosling cite les grands projets de farces du 1er avril organisés chaque année, se remémorant une culture d’entreprise où créativité et bonne humeur coexistaient
- Parmi les farces emblématiques, il évoque une Ferrari installée sur une plateforme flottant au-dessus d’un étang, exemple d’un humour mobilisant à la fois l’ingénierie et le travail d’équipe
- Une autre farce consistait à aménager dans le bureau du CEO un parcours de golf d’un trou avec gazon artificiel, bunker et obstacle d’eau, présenté comme une tentative originale mêlant technologie et jeu
- Gosling se souvient de Sun comme d’« un environnement rare où l’excellence technique et la créativité espiègle étaient toutes deux permises », ce qui a façonné sa manière générale de résoudre les problèmes et son rapport à la technologie
Java: Creating a Legacy That Changed Everything
- Les 30 ans de Java représentent pour Gosling son accomplissement le plus emblématique et le tournant décisif de sa vie technologique
- Il évoque la profonde satisfaction de voir l’impact laissé sur l’écosystème des développeurs chaque fois que quelqu’un l’arrête dans la rue pour lui dire : « J’ai eu une carrière grâce à Java »
- Il voulait intégrer dès le départ des fonctionnalités comme les lambdas et les generics, mais il a repoussé leur arrivée selon une philosophie de conception résumée par l’idée de “ne pas les intégrer de la mauvaise manière”
- À propos de la gestion de Java par Oracle, il estime qu’« ils ont fait mieux que prévu » et souligne que, dans les faits, la participation et les contributions continues de la communauté ont joué un rôle central
- Java a évolué pour s’optimiser pour le cloud, atteignant un niveau d’aboutissement technique “vraiment impressionnant” dans des domaines comme le support du multicœur, le traitement mémoire et l’amélioration du GC
Beyond Java: Ventures After Sun
- Après le rachat de Sun par Oracle, Gosling prend une courte pause puis rejoint Google, avant de quitter l’entreprise six mois plus tard pour rejoindre Liquid Robotics
- Il y développe des systèmes de contrôle pour robots marins autonomes, dans un contexte de travail atypique mêlant technologie et nature, avec par exemple des missions nécessitant de faire du snorkeling à Hawaï
- Il participe à un projet de surveillance de la température des océans en Arctique et en Antarctique, mais le manque de financement de la recherche environnementale entraîne un conflit avec la logique de startup financée par le capital-risque
- Face à la pression pour pivoter vers la défense, il part pour des raisons éthiques, puis rejoint AWS où il travaille sur Greengrass et sur des outils de développement, poursuivant des choix de carrière guidés à la fois par l’intérêt technique et des critères éthiques
On Open Source and Industry Trends: Cutting Through the Hype
- L’open source est présenté non comme un simple outil de collaboration, mais comme un écosystème complexe qui touche aux relations développeurs, à la stratégie marketing et aux modèles d’adoption bottom-up
- À propos des tendances low-code et no-code, il rappelle qu’on entend ce discours depuis l’époque du COBOL et affiche une position sceptique, les voyant comme des approches spécialisées aux limites nettes dès qu’on les applique à des domaines complexes
- Selon lui, avec l’IA et le machine learning, le problème tient davantage au nom qu’à la technologie, et il critique la terminologie en estimant que l’expression “techniques statistiques avancées” décrit mieux leur nature réelle
- Il affirme que l’IA n’est qu’un outil et ne doit pas être confondue avec une entité autonome, plaidant pour qu’on la voie comme un outil sophistiqué d’assistance plutôt qu’une menace directe pour le travail humain
Developer Tools and Preferences: Embracing Progress
- Gosling utilise NetBeans IDE comme principal outil de développement et affiche son soutien à l’open source sous licence Apache ainsi qu’à une communauté active
- Il regrette l’attitude de certains développeurs toujours attachés à Vi ou à des outils des années 70 et 80, y voyant une résistance dommageable au progrès technique
- Il utilise encore parfois Vi parce qu’il fonctionne partout, mais défend fermement l’usage d’IDE modernes pour un véritable environnement de développement
The JVM Vision: From Academic Concept to Global Standard
- Le concept initial de la Java Virtual Machine (JVM) remonte aux années de doctorat de Gosling, avec des expérimentations sur des formats de distribution neutres vis-à-vis de l’architecture et sur la traduction d’instructions
- Cette idée a ensuite évolué en plateforme d’exécution généraliste permettant à Java, mais aussi à d’autres langages, de fonctionner sur des matériels variés
- La philosophie « Write once, run anywhere », d’abord écartée comme sujet de thèse faute de fondement mathématique suffisant, s’est finalement imposée comme une technologie pragmatique qui a bouleversé l’environnement mondial du développement logiciel
More Recent Work: Bridging IoT Gaps at AWS
- Chez AWS, Gosling a participé au développement de Greengrass, un framework d’applications IoT, où il a mis en œuvre une approche technique visant à simplifier avec élégance des problèmes complexes
- OTA updates, contrôle à distance, télémétrie, fiabilité réseau, sécurité, gestion de l’authentification : le projet abstrait tout le boilerplate récurrent entre déploiement et exploitation
- Le code côté device a été publié en open source, afin d’encourager des contributions de portage par la communauté vers des plateformes non prioritaires pour Amazon, comme RISC-V
- Un autre projet d’outils de développement auquel il a ensuite participé a été interrompu dans le sillage du boom de l’IA, ce qui suggère les dérives d’un secteur davantage guidé par la mode que par l’authenticité technologique
AI Skepticism
- Dans une interview récente, Gosling a qualifié la révolution de l’IA de « mostly fraud », affichant une vision sceptique qui voit dans l’IA un terme marketing toxique
- S’il reconnaît une technologie mathématiquement impressionnante, il souligne aussi que le mot IA brouille la nature réelle de ces technologies, qui relèvent surtout de techniques statistiques avancées
- Il critique sévèrement la vague IA menée par le capital-risque, qu’il décrit comme « un point de rassemblement d’arnaqueurs et de vendeurs de hype », y voyant une quête de gains rapides et d’exit plutôt qu’une recherche de technologies réellement utiles
- Selon lui, la majeure partie des investissements dans l’IA finira aspirée dans un “trou noir”, avertissement contre des flux financiers guidés par un effet de mode sans vraie durabilité
Is It a Vibe? AI Coding Tools: Impressive Demos, Limited Utility
- Les outils de code génératif par IA font forte impression au départ, mais reposent sur une structure limitée qui échoue dès que les problèmes deviennent un peu complexes
- Ces outils ne font que récupérer et répéter des exemples de code existants, alors que les problèmes vraiment intéressants sont toujours nouveaux et se prêtent mal à des outils fondés sur la reproduction
- Dans les environnements de développement experts, le code répétitif tend à être absorbé dans des bibliothèques, si bien que la génération de code par IA entre structurellement en conflit avec les besoins réels du développement
- Gosling définit la véritable utilité de l’IA comme un outil de recherche capable de prendre en charge le travail de documentation que personne n’a envie de faire, et met en avant sa valeur comme assistant spécialisé dans l’explication de l’usage des API
Java’s Evolution: Language Features and Runtime Improvements
- Parmi les évolutions récentes du langage Java, l’inférence de types et les améliorations dans la déclaration des tableaux sont vues comme des extensions utiles qui améliorent le confort de développement
- Gosling insiste toutefois sur le fait que les progrès les plus marquants de Java résident dans l’amélioration de la qualité de la JVM et des bibliothèques standard
- La JVM moderne offre des performances d’exécution « à un niveau étonnant » en matière de qualité de code, de performance des threads et de garbage collection
- En gestion mémoire et en prévisibilité des performances, elle se montre plus efficace qu’un langage C fondé sur
malloc, avec la possibilité de régler les pauses du GC jusqu’à quelques millisecondes
- La JVM actuelle est ainsi présentée comme un environnement d’exécution très performant capable de gérer de manière stable des espaces mémoire gigantesques
Programming Languages for Critical Infrastructure
- Interrogé sur le langage à choisir pour réécrire le système de contrôle aérien de la FAA, Gosling rejette la prémisse de la question en expliquant que c’est comme vouloir construire une maison en commençant par choisir le marteau
- Il insiste d’abord sur la nécessité de comprendre clairement les propriétés du domaine de problème — systèmes de communication, réglementations internationales, trajectoires de vol, évitement des collisions — avant de choisir la technologie
- Il ajoute néanmoins que, pour des systèmes de grande ampleur où la fiabilité est critique, Java peut constituer un candidat solide
The Future of Programming in an AI World
- Même si l’IA progresse, la programmation reste une compétence essentielle, et Gosling affirme que s’il avait des enfants, il leur apprendrait sans hésiter à coder
- Il critique les dirigeants de la big tech qui prétendent que l’IA remplacera les développeurs humains, y voyant de simples menaces d’autodéfense destinées à intensifier le travail
- Pour bien comprendre les systèmes, il faut des compétences en programmation ; même si des machines prennent en charge certaines tâches, la base de compréhension technique humaine doit perdurer
Java’s Longevity Secret
- Pour expliquer la survie de Java pendant plus de 30 ans, Gosling met en avant sa capacité à résoudre de vrais problèmes, le respect des utilisateurs, la rétrocompatibilité, l’amélioration de la productivité et une philosophie centrée sur la fiabilité
- Java a toujours privilégié une utilité pragmatique constante plutôt que les effets de mode, avec une philosophie de conception ancrée dans le réel, davantage tournée vers les résultats que vers le style, particulièrement efficace en environnement enterprise
- Du point de vue selon lequel un logiciel doit « toujours fonctionner correctement », Java reste un outil d’ingénierie honnête et pragmatique
Oracle’s Stewardship: Better Than Expected
- Gosling estime qu’après le rachat de Sun Microsystems, Oracle a géré Java « bien mieux qu’il ne l’aurait pensé », exprimant sa surprise face à des résultats au-delà de ses attentes
- Au départ, il craignait un comportement de type « pillage et saccage » au vu du passé de l’entreprise, mais il juge finalement positivement le fait qu’Oracle ait protégé l’équipe Java sans entraver son travail, en lui laissant une certaine indépendance
- Il note que le soutien financier n’a pas été suffisant, mais accorde une bonne évaluation au maintien d’une structure garantissant l’autonomie de l’équipe technique sans interférence d’entreprise
Crab Lovers Unite!
- Gosling dit depuis longtemps qu’il veut travailler avec des gens avec qui il aimerait aussi partager un repas, ce qui reflète une vision de la collaboration centrée sur les personnes
- Le journaliste raconte l’avoir croisé par hasard au restaurant de crabes Thanh Long à San Francisco, capturant ce moment où une figure majeure de la tech apparaît dans le cours ordinaire de la vie
- Ils ont ensuite partagé un repas de crabe et une conversation, avec la promesse de se revoir au même endroit, transmettant une chaleur humaine qui dépasse la seule technologie
13 commentaires
Moi aussi, parmi les langages à typage statique, je pense que Java est celui qui est le plus confortable à utiliser.
En revanche, du point de vue du développement généraliste et pragmatique, écrire en Java des applications orientées utilisateur final avec une interface graphique n’a jamais été un très bon choix. (Dans cette optique, la combinaison C# + .NET est clairement la meilleure.)
Compte tenu des points forts de Java, je pense que le cas d’usage le plus pertinent d’un point de vue pratique reste le backend ou le middleware.
Quoi qu’il en soit, comme c’est un langage que j’ai l’occasion d’utiliser de temps en temps et que je peux manier sans pression à chaque fois, j’en garde surtout de bonnes expériences.
L’anecdote selon laquelle il programmait en démontant des téléviseurs dans une décharge, c’est vraiment le début d’une légende.
Il est vrai qu’après Java, les langages ont commencé à se concentrer sur la productivité.
Avant cela, le C++, qui était souvent utilisé, est encore aujourd’hui terrible ne serait-ce qu’à lire. Surtout lorsqu’on touche à des projets de longue haleine.
J’ai du mal à être d’accord avec l’idée que Java a mis l’accent sur la productivité des développeurs
Y a-t-il vraiment un autre langage qui ait évolué au point de devenir aussi profondément dépendant d’un IDE que Java ?
J’ai posté un commentaire irréfléchi.
Le fait de dépendre fortement d’un IDE est un problème de l’écosystème Java, qui s’est développé de manière atypique,
et non un problème au niveau de la conception.
Pour le dire crûment, aujourd’hui, pour développer en Java, il n’est pas indispensable d’utiliser un produit JetBrains,
mais tout le monde le fait quand même.
Et si l’on regarde la liste des langages de programmation à l’époque où Java est apparu, beaucoup avaient des implémentations dépendantes de la plateforme, c’est-à-dire de l’OS.
Java a montré l’orientation qu’allaient suivre des langages comme Node, Python ou C#, capables de fonctionner sur différents OS avec le même code.
De nos jours, la compatibilité permettant au même code de tourner sur différents OS est un « bon sens » évident.
> Franchement, même si vous développez en Java aujourd’hui, vous n’êtes pas forcément obligé d’utiliser un produit JetBrains
Sur ce point... j’ai un peu de mal à être d’accord, hélas...
C’est devenu assez évident aujourd’hui,
mais à l’époque de la sortie de Java, le simple fait de prendre en charge de manière fiable le multiplateforme sans nouveau build devait déjà représenter un gain de productivité considérable, non ?
Comparé aux langages d’avant Java, il semble offrir une meilleure productivité.
c++ > c# >= java
C# >= Java > C++
Avis Hacker News
java.util.concurrentou JCTools manquent parfoissealed class,switch expression, Project Loom et lesrecordsrécemment introduits en Java sont appréciés pour la manière naturelle dont ils se sont intégrés à la syntaxe existante ; les outils de diagnostic de Java, comme les analyseurs de heap dumps et de GC, sont aussi perçus comme parmi les meilleursstraceougdbdifficile ; la surallocation mémoire compliquait la compréhension de la charge par le kernel ; avec la JVM, sans aide experte, le risque de gros problèmes semblait élevé ; s’ajoutent Oracle, les licences, la gestion des versions du JDK, l’absence d’image “cool” en 2025 et le poids du code legacy ; certains ont construit leur carrière en évitant Java autant que possible ; aujourd’hui, avec la montée de langages performants à compilation statique et petits binaires, la place de solutions comme la JVM ou la VM Python semble progressivement se réduirejstack, HPROF et bien d’autres sont aussi très nombreux ; côté licence, l’usage open source n’a pas de restriction, et acheter la JVM Oracle reste un choix facultatif ; certains demandent aussi ce qu’on entend exactement par problème de code legacystrace/gdbstrace/gdb; le support du débogage et des IDE est extrêmement solide ; mettre Python et la JVM sur le même plan en performances est jugé inappropriéOn dirait que le clan C# se cache au milieu.