Nous sommes en 1995 à une conférence. James Gosling et John Gage, directeur du SUN’s Science Office font une démonstration de Webrunner, l’un des premiers navigateurs internet. A cette époque, il n’existe que NCSA Mosaic pour « surfer » sur Internet. Lors de la démonstration, James charge une page, clique sur cette page, et pour la première fois montre une animation en 3D d’une molécule. Tout d’un coup, le web qui n’était qu’un maillage de document, s’anime devant la salle. L’ancêtre du navigateur HotJava est né.
Or les derniers mois ont été plutôt difficile pour James Gosling et son équipe. Début 1991, SUN Microsystems envisage de lancer les premiers périphériques connectés. Pour cela, il faut une couche logiciel, et donc des applications. L’équipe de James Gosling, une trentaine de personnes, débute avec le C++. James voit que la vitesse de développement de ses équipes n’est pas optimale. Ils décident donc collectivement d’initier aussi un nouveau langage, afin de simplifier les développements.
Ce langage c’est « Oak« . Il permettra à la « Green team », dès 1992, de sortir un OS et de construire l’un des premiers PDA. En 1994, les avocats informent SUN que le nom « Oak » est déjà déposé, et qu’il convient donc de le changer. L’équipe, sous l’impulsion de Kim Polese, fait une session de brainstorming, d’où le nom Java sortira, après validation avec les avocats. L’histoire dit que Chris Warth, une coupe de café « Peet’s Java » à la main, aurait proposé « Java ».
Février 1995. James Gosling publie un papier qui marque définitivement la naissance du langage.
JAVA: A simple, object oriented, distributed, interpreted, robust, secure,
architecture neutral, portable, high performance, multithreaded,
dynamic language.
Un langage simple dont l’origine, la génèse… est de faire plus simple que le C++ et le C. Le langage est pensé dès le départ pour simplifier la vie du développeur. Avec l’introduction d’un ramasse-miettes (Garbage Collector), Java simplifie la gestion de la mémoire, et retire cette responsabilité des mains du dévelopeur. Ce principe permettra aussi d’optimiser l’architecture et la gestion de la mémoire, sans remettre en question le programme. A cette époque, vous deviez autant connaître l’allocation de mémoire, que les patterns de création des structures de données.
Java est aussi fortement orienté objet. Plutôt que de se concentrer sur le « comment », l’approche de Java est de proposer un focus sur le « quoi ». Java renforce cette idée avec la sortie d’une librairie assez riche, surtout sur la partie collection. Bien qu’assez buggé, les premières idées sont là : Java c’est aussi des APIs, prêtes à répondre aux besoins de base du dévelopeur.
Le support réseau, et la notion de distribué, seront très présents dans les premières années. En 1999, Java RMI (Remote method invocation) après le support de CORBA, permet l’exécution de code entre 2 serveurs. L’approche RPC restera longtemps populaire, pour être remplacée aujourd’hui par une approche plus web, avec les architectures de type REST. Nous sommes passés d’un paradigme orienté commande (RPC) à un paradigme orienté document (REST API).
Java apparaît en 1995. A cette époque, les étudiants apprennent surtout le C à l’école. Or une bonne maîtrise de la programmation C/C++ passe par l’apprentissage de la gestion de la mémoire, par l’écriture de code qui ne contribue pas immédiatement à réaliser le projet. Le ratio « code métier/code technique » est plus déséquilibré qu’avec Java. A contrario, Java se positionne dès le départ comme le langage du développement Web. Un même code peut fonctionner sur différents serveurs, quelque soit les architectures.
On l’oublie parfois, mais la tagline de Java a été longtemps : « Write once, run everywhere« .
Il y a 20 ans, le développement cross-plateforme était assez peu répandu. Java n’a pas inventé ce concept, mais il met en avant le concept de machine virtuelle. Un code écrit dans une seule syntaxe, est interprété pour fonctionner sur l’architecture cible. La différence entre le langage interprété et le langage compilé colle une réputation de lenteur dans les premières années. Or Java compile vers du byte-code cible, aussi bien que votre compilateur C. Et ce, depuis plus de 18 ans. Java est aussi, parfois même plus rapide, que du code écrit par un développeur C.
Java change aussi la donne pour le développeur grâce à la JVM. Si vous avez codé en C, en C++, en assembleur ou autre, il était courant en 1995 de planter sa machine. Il suffisait d’une écriture dans une zone mémoire non protégée, pour voir un écran bleu de la mort ou un kernel panic. Je lève la main car en 1993/1994, j’étais ce gars. Java était une petite révolution car le système isole votre code de la machine, via la JVM. Ceci permet aussi une meilleure remontée d’erreur, avec les fameuses StackTrace.
Pourquoi Java est rapidement adopté
La première raison est simple : Java est l’un des premiers langages distribué sur Internet. En mars 1995, l’équipe de James Gosling sort Java 1.0a2, la première version officielle. L’équipe souhaite distribuer rapidement le langage afin qu’il soit adopté sans limite et sans frontière. A cette époque, c’est une petite révolution. Imaginez que les autres éditeurs vendaient des boîtes avec des disquettes, sur lesquelles vous pouviez avoir par exemple une version de « Turbo C » de Borland.
Java est distribué sur Internet.
Chez SUN, dans l’équipe de James Gosling, c’est l’effervescence. Après avoir monté un serveur, java.sun.com, l’équipe dépasse rapidement les 10 000 téléchargements. Avec ce succès, vient un flot d’emails et de questions de la part des développeurs. Cela prend tellement de temps, que l’équipe prépare une liste des questions fréquentes. Puis une personne responsable par semaine pour répondre. Puis une équipe à temps plein… Java remporte aussi un succès d’adoption car la documentation et les efforts pour écrire des exemples sont exemplaires. Les livres suivent rapidement. J’ai pour ma part débuté en 1996 avec « Java in a Nutshell ». Non, Stack Overflow n’existait pas à cette époque.
Le langage remporte aussi un énorme succès, car il débarque dans un monde prêt à travailler avec Internet. 1995 c’est la sortie de Microsoft Windows 95 et de la première version d’Internet Explorer. Nous sommes au début du Web, tel que nous le connaissons aujourd’hui. Le serveur java.sun.com et la ligne T1 sont rapidement saturés. Les équipes marketing de SUN Microsystems constatent le succès et décident d’appuyer immédiatement le langage, et renforcent les équipes.
Les équipes travaillent sans compter. Un article doit être publié le 23 mars 1995, à l’occasion de la conférence SunWorld, dans le San Jose Mercury News, alors que la page java.sun.com n’est même pas en ligne.
Le coup de projecteur final aura lieu le 23 mars 1995, lors de la conférence SunWorld. Eric Schmidt signe un accord avec Netscape, dirigé par Marc Andreessen. Ils annoncent ensemble sur scène, que Java sera officiellement intégré dans le navigateur Netscape, le premier navigateur à l’époque.
Java est né le 23 mars 1995.
Nicolas,
Es-tu certain de tes informations sur la version Alpha et sa distribution sur Internet ?
En Juillet 1995, j’ai rejoins Sun Microsystems, et j’avais deja entre les mains les specifications techniques du langage Java, mais j’ai du attendre comme tout le monde la mise a disposition de la version beta publique, qui n’a eu lieu que Fin Septembre, debut Octobre 1995 pour pouvoir tester le langage et la JVM. A ma connaissance, la version Alpha n’etait pas publique.
Bonjour Ludovic
Ma source est dans cet article, page 5
Going Public
Merci Nicolas.
Dans mon souvenir, la version Beta sortie à l’automne 1995 était sous forme binaire et permettait de compiler un programme Java et l’executer.
Je pense que je n’avais pas entendu parler de version Alpha en open source.
Ludo