"La prédominance de JavaScript est-elle un accident historique ou autre?"
Je suis personnellement d'avis que le succès de JS est une question de design autant que beaucoup l'ont été et continueront à détester l'admettre et pas seulement un accident ou simplement parce qu'il a été le premier enfant sur le terrain de jeu.
Bien que nommé pour attirer les développeurs Java et syntaxé comme la syntaxe basée sur C de Java pour attirer également les développeurs Java, Brendan Eich a pris l'une des décisions les plus graves de l'histoire du www qui devait s'appuyer principalement sur Scheme pour la mécanique du langage réel l'inspiration, ce que les développeurs Java ne semblent pas avoir aimé du tout (ce que je trouve très amusant).
JavaScript utilise un héritage prototypique hautement flexible / granulaire pour la POO, il a des fermetures, les types sont 100% dynamiques, les fonctions elles-mêmes sont de première classe leur permettant d'être transmises comme tout autre objet ou type de données et d'être réutilisées dans différents contextes et même être appliqué à des objets à la volée comme s'ils avaient été déclarés membres d'objet réels depuis le début. Il est pratiquement criant d'être utilisé pour des architectures événementielles qui doivent normaliser une tonne de déchets propriétaires ou gérer des problèmes d'interface utilisateur hautement non linéaires.
À la fin de l'aube du Web, c'est la seule langue qui ait jamais été sérieusement à la hauteur de la tâche de normaliser les navigateurs à travers une véritable guerre des navigateurs où Netscape et IE ont essayé de faire les choses différemment exprès, suivi par plus de 10 ans de navigateur trêve où IE vient de faire les choses différemment parce que MS est paresseux et auto-implanté dans certaines pratiques anticoncurrentielles justement stupides entraînant la stagnation du navigateur, et maintenant un monde où les navigateurs commencent enfin à se mettre d'accord sur les mêmes spécifications générales en ce qui concerne HTML, CSS et l'API DOM avec IE n'ont que 2-3 ans de retard sur les derniers développements plutôt que 10 en raison de la suppression par Google et Mozilla des compilateurs JIT qui rendaient les performances d'IE si pathétiques. MS a finalement été honteux de moderniser correctement ses foutus navigateurs.IE9 est le premier à réellement mettre à niveau le support de l'API DOM vers des niveaux que Netscape supportait en 2000.
JS a fait concurrence sous la forme d'applets Java et d'ActionScript d'Adobe pour Flash. C'est à peu près tout sur le front des candidats sérieux. MS a essayé de pousser VB mais a échoué misérablement parce que ... eh bien ... VB. En outre, propriétaire. Il y avait en fait beaucoup plus de sites Flash que la plupart des gens ne le pensent. Vous ne pouviez tout simplement pas trouver les choses idiotes avec les moteurs de recherche. Les applets ont fait leur propre truc, et c'était moche. Vraiment moche. JS était le seul langage qui a vraiment abordé le problème de travailler dans le contexte de plusieurs navigateurs par des personnes qui n'étaient pas d'accord sur qui définissait les spécifications auxquelles ils étaient censés correspondre.
Ces dernières années, JS a explosé dans un domaine d'application beaucoup plus large. En combinaison avec d'autres technologies Web, il est essentiellement conçu pour renverser toutes les autres solutions sur le front mobile, car la technologie informatique + Web est vraiment le seul choix réaliste en ce moment si vous voulez vraiment écrire une application et la faire fonctionner sur tout.
Alors non, et oui, je suis un grand fan, mais je ne pense pas que cela ait frappé tous les autres concurrents côté client par accident, pas plus qu'il ne devenait explosif en dehors du navigateur pourrait être considéré comme un accident maintenant. Avant JS, il n'y avait pas beaucoup de langues similaires à Scheme qui n'étaient pas principalement académiques. Cela donne à JS des avantages puissants et les besoins uniques du côté client ont permis à ces avantages de devenir progressivement limpides.