Java (une brève introduction historique)

java dev.to

Java est né au début des années 90, dans les bureaux de Sun Microsystems, principalement grâce au travail de James Gosling et de son équipe. L'idée initiale faisait partie du Green Project, qui cherchait à créer des logiciels pour une nouvelle génération de dispositifs électroniques. Le langage s'appelait à l'origine Oak. L'histoire raconte que le nom a dû être changé parce qu'une marque utilisait déjà ce nom. Certaines versions racontent également que Java aurait été inspiré par un café ou simplement par le café que buvaient les développeurs. ☕

Dès le début, l'une des grandes idées de Java était d'être multiplateforme, résumée par la célèbre phrase « Write Once, Run Anywhere ». À l'époque, faire fonctionner un programme sur différents systèmes d'exploitation n'était pas aussi simple qu'aujourd'hui. L'idée géniale a été d'ajouter une couche entre l'application et le système d'exploitation : la JVM (Java Virtual Machine). Ainsi, le code Java n'a pas besoin d'être compilé directement pour Windows, Linux ou une autre plateforme spécifique.

C'est ici qu'intervient le fameux bytecode. Lorsque nous écrivons un programme Java, le compilateur transforme le code source .java en bytecode, généralement stocké dans des fichiers .class. Ce bytecode n'est pas exactement du code natif du processeur. Il est exécuté par la JVM, qui connaît les particularités de la plateforme sur laquelle elle fonctionne. Au fil des années, la JVM est devenue extrêmement sophistiquée, notamment grâce à des techniques comme la compilation JIT (Just-In-Time), qui permet de transformer certaines parties du bytecode en code natif pendant l'exécution.

Java a maintenant plus de 30 ans. Et il est assez intéressant de voir à quel point le langage a évolué pendant cette période. Generics, annotations, lambdas, Streams, modules, records, pattern matching, sealed classes et, plus récemment, les virtual threads, ne sont que quelques exemples de cette évolution. Quelqu'un qui a appris Java il y a 15 ou 20 ans découvrirait probablement un langage assez différent en regardant le Java moderne.

C'est aussi pour cela que certains vieux stéréotypes sur Java ne sont plus vraiment d'actualité. « Java est lent », « Java est extrêmement verbeux », « Java demande trop de code »... Certaines de ces critiques étaient effectivement justifiées à certaines époques. 😅 Mais comparer Java moderne avec Java 5 ou Java 6 n'est pas vraiment juste. Le langage est devenu beaucoup plus expressif et a supprimé une grande partie du boilerplate au fil des années, tout en conservant le typage statique qui fait partie de ses caractéristiques fondamentales.

Et il y a quelque chose d'assez intéressant : malgré toute cette évolution, beaucoup d'entreprises utilisent encore Java 8. Java 8 est sorti en 2014 et reste présent dans un très grand nombre de systèmes d'entreprise. Depuis, nous avons eu d'importantes versions LTS (versions avec support long), comme Java 11, Java 17, Java 21 et Java 25. Cette longévité montre également l'une des grandes forces de l'écosystème Java : la compatibilité. L'attention portée à la compatibilité avec les anciennes versions permet aux systèmes de continuer à évoluer sans devoir être entièrement réécrits à chaque nouvelle version.

Au final, connaître un peu l'histoire de Java nous aide à comprendre où nous en sommes arrivés. La JVM, le bytecode, la portabilité et l'attention portée à la compatibilité ne sont pas apparus par hasard. Ils font partie d'une histoire de plus de trois décennies. Java a énormément évolué, mais il conserve encore certaines des idées fondamentales qui lui ont permis d'aller aussi loin. Et comprendre d'où nous venons aide beaucoup à comprendre le Java que nous utilisons aujourd'hui.

Source: dev.to

arrow_back Back to Tutorials