En 2001, Roy Fielding, un cofondateur de la fondation Apache, avait prédit que JavaScript allait réussir à s'imposer sur le Web,
voici ses raisons
Sur le Web d’aujourd’hui, le triplet HTML, CSS et JavaScript dominent largement les autres combinaisons utilisées dans le développement des applications Web, une tendance qui va sans doute continuer à progresser au cours des années à venir. Malgré le fait que Java soit jugé plus robuste que JavaScript, le langage de Sun Microsystems n’a pas su s’imposer avec la fonctionnalité des applets pour le Web. Ce qui s’est passé, Roy Fielding, un des fondateurs de la fondation Apache, l’avait prédit, citant quelques-unes des raisons pour lesquelles JavaScript allait battre Java sur le Web.
Roy Thomas Fielding est un informaticien américain né en 1965 à Laguna Beach en Californie. Il est notamment connu pour ses travaux pour le développement des premiers serveurs Web, et principalement le serveur Web Apache, le fonctionnement du Web, la spécification HTTP et est l’un des fondateurs de la fondation Apache. Dans un paragraphe d’un mémoire publié en 2001 sur la façon dont l’architecture REST a influencé le développement de l’architecture du Web moderne, Fielding comparait Java et JavaScript et trouva ce dernier plus efficace sur le Web que Java.
Roy Thomas Fielding
Selon Fielding, les deux langages ont été introduits à un moment où le paradigme du code à la demande (code-on-demande) était en plein essor sur le Web. Pour rappel, en informatique distribuée, le code à la demande est une technologie qui envoie un code logiciel exécutable d'un ordinateur serveur à un ordinateur client à la demande du logiciel du client. À ce jour, les exemples les plus connus du paradigme du code à la demande sur le Web sont les applets Java, le langage ActionScript d'Adobe pour le lecteur Flash, et le langage JavaScript.
Pour lui, si les applets Java n’ont pas pu tenir la concurrence avec la montée du JavaScript, ce n'est certainement pas pour sa qualité technique en tant que langage, puisque sa syntaxe et son environnement d'exécution sont considérés comme médiocres par rapport à Java. Ce n'est pas non plus à cause du marketing : Sun (désormais racheté par Oracle) dépasse de loin Netscape à cet égard, et continue à le faire. Ce n'est pas non plus pour les caractéristiques intrinsèques des langages, puisque Java a eu plus de succès que JavaScript dans tous les autres domaines de programmation (applications autonomes, servlets, etc.).
En outre, Roy Fielding pense que les raisons de cette divergence se trouvent dans les caractéristiques que présente le langage Java en tant que type de média de représentation au sein de REST. L’analyse de Fielding admet que le langage JavaScript est mieux adapté au modèle de déploiement de la technologie Web. Selon lui, JavaScript est beaucoup plus facile à apprendre, sans grand effort pour un débutant.
De même, il estime que JavaScript a également un impact moindre sur la visibilité des interactions. Des organisations indépendantes peuvent lire, vérifier et copier le code source écrit en JavaScript de la même façon qu'elles pourraient copier le code HTML. Java, en revanche, est téléchargé sous forme d'archives binaires, ce qui signifie que l'utilisateur doit se fier aux restrictions de sécurité dans l'environnement d'exécution Java. En plus, ce dernier posséderait de nombreuses autres fonctionnalités dont l'autorisation dans un environnement sécurisé est jugée discutable.
Il s’agit notamment de la possibilité de renvoyer les requêtes RMI (invocation de méthode distante) au serveur d'origine. Il a aussi déclaré que la distinction la plus importante entre les deux est peut-être le fait que JavaScript entraîne une latence moindre perçue par l'utilisateur. Ce dernier est généralement téléchargé dans le cadre de la représentation primaire, alors que les applets Java nécessitent une requête séparée. Le code Java, une fois converti au format de code d'octet, est beaucoup plus grand que le JavaScript typique.
Enfin, l’autre chose en défaveur de Java est qu’il exige que l'ensemble des fichiers de classe soit téléchargé et installé avant que l'application puisse s’exécuter. Par contre, le JavaScript peut être exécuté pendant le téléchargement du reste de la page HTML. Ces différents arguments de Fielding semblent montrer que dès le départ, Java n’avait aucune chance de s’imposer sur le Web au détriment de JavaScript. Aujourd’hui, JavaScript est allé bien au-delà de ce pour quoi il a été conçu au début. Le langage a un écosystème plus vaste que jamais et continue à se développer.
Le rapport sur l’état de JavaScript en 2019 montrait comment il a continué à prendre de l’ampleur au cours de ces dernières années. Le langage semble avoir conquis le Web pour toujours. Il est d’ailleurs actuellement le langage le plus utilisé par les contributeurs sur GitHub. Par ailleurs, d’autres facteurs ont aussi contribué à sa domination sur le Web. Les entreprises comme Microsoft ont aussi poussé quelques pions.
Une fois que l'on ne pouvait plus compter sur la présence de Java sur tous les principaux navigateurs, il ne restait plus que le JavaScript et il ne cessait de s'améliorer. Il a développé plus tard TypeScript, un surensemble de JavaScript avec des propriétés beaucoup plus strictes. Cela a pour but d'améliorer et de sécuriser l'écriture de code source JavaScript. Il a contribué à faciliter la création d’application Web plus moderne. D’autres projets comme Node.js ont apporté JavaScript du côté du serveur avec un temps d’exécution ultrarapide.
Source : Roy Thomas Fielding
Et vous ?
Quel est votre avis sur le sujet ?
Êtes-vous du même avis que Roy Thomas ?
Pour quelles autres raisons JavaScript dépasse Java sur le Web selon vous ?
Voir aussi
État de JavaScript en 2019 : les développeurs aiment un peu plus React, Angular est en déclin, un groupe de développeurs pense que JS est « trop complexe »
Python devance Java et devient le deuxième langage de programmation le plus utilisé par les contributeurs sur GitHub, après JavaScript
The State Of JavaScript 2018 : l'enquête révèle que JavaScript est en pleine évolution. Voici une vue macro des technologies JS utilisées
La version 3 de Svelte, le framework de composants graphiques, est disponible et repense la réactivité des frameworks autrement
La version stable de TypeScript 3.7.0 est disponible et apporte diverses fonctionnalités et quelques améliorations au langage
Partager