"¿Es el predominio de JavaScript un accidente histórico o algo más?"
Personalmente, opino que el éxito de JS es una cuestión de diseño tanto como muchos lo han sido y seguirán siendo reacios a admitirlo y no solo por algún accidente o simplemente por el hecho de que fue el primer niño en el patio de recreo.
Aunque llamado así para atraer a los desarrolladores de Java y sintaxis como la sintaxis basada en C de Java también para atraer a los desarrolladores de Java, Brendan Eich tomó una de las decisiones más rudas en la historia de la WWW, que se basó principalmente en Scheme para la mecánica del lenguaje real inspiración, que es algo que a los desarrolladores de Java no parece gustarles en absoluto (lo cual me parece muy divertido).
JavaScript utiliza una herencia prototípica altamente flexible / granular para OOP, tiene cierres, los tipos son 100% dinámicos, las funciones en sí mismas son de primera clase, lo que les permite pasar como cualquier otro objeto o tipo de datos y reutilizarse en diferentes contextos e incluso se aplican a los objetos sobre la marcha como si hubieran sido declarados como miembros reales del objeto desde el principio. Prácticamente es un grito ser utilizado para arquitecturas controladas por eventos que necesitan normalizar una tonelada de basura patentada o manejar problemas de IU altamente no lineales.
Al final de los albores de la web, es el único lenguaje que ha sido capaz de normalizar los navegadores a través de una guerra real de navegadores donde Netscape e IE intentaron hacer las cosas de manera diferente a propósito, seguidos por más de 10 años de navegador tregua donde IE simplemente hizo las cosas de manera diferente porque la EM es perezosa y está arraigada en algunas prácticas anticompetitivas justamente estúpidas que resultan en el estancamiento del navegador, y ahora en un mundo en el que los navegadores finalmente comienzan a ponerse de acuerdo sobre la misma especificación general con respecto a HTML, CSS y la API DOM con IE solo están 2-3 años detrás de los últimos desarrollos en lugar de 10 debido a que Google y Mozilla destruyeron los compiladores JIT que hicieron que los números de rendimiento de IE parecieran tan patéticos, MS finalmente se avergonzó de modernizar adecuadamente sus malditos navegadores.IE9 es el primero en actualizar seriamente el soporte de la API DOM a los niveles que Netscape soportaba en 2000.
JS ha tenido competencia en forma de Applets de Java y ActionScript de Adobe para Flash. Eso es todo en el frente serio contendiente. MS intentó presionar a VB pero falló miserablemente porque ... bueno ... VB. Además, propietario. En realidad, había muchos más sitios Flash de lo que la mayoría de la gente piensa. Simplemente no podía encontrar las cosas tontas con los motores de búsqueda. Los applets hicieron lo suyo, y fue feo. Realmente feo. JS fue el único lenguaje que realmente abordó el problema de trabajar en el contexto de múltiples navegadores por personas que no estaban de acuerdo con quién estaba estableciendo las especificaciones con las que se suponía que debían coincidir.
En los últimos años, JS ha estado explotando en un dominio de aplicación mucho más amplio. En combinación con otras tecnologías web, está diseñado para eliminar básicamente todas las demás soluciones en el frente móvil, ya que la tecnología web + es realmente la única opción realista en este momento si realmente desea escribir una aplicación y hacer que funcione en todo.
Así que no, y sí, soy un gran admirador, pero no creo que haya golpeado a todos los demás contendientes del lado del cliente por accidente, ya que ahora se puede considerar un accidente explosivamente popular fuera del navegador. Antes de JS, no había muchos lenguajes tipo Scheme que no fueran principalmente académicos. Esto le dio a JS algunas ventajas poderosas y las necesidades únicas del lado del cliente hicieron posible que esas ventajas se volvieran cristalinas lentamente.