¿Por qué JavaScript tiene tantos frameworks que se usan ampliamente, pero otros lenguajes de programación tienen uno o dos frameworks ampliamente utilizados?

Otros lenguajes también tienen muchos marcos web, como Java, Python y PHP. Sin embargo, en esos idiomas, algunos llegan a la cima y se consolidan. Además, esos idiomas han tenido tiempo de sobra para adquirir su colección de marcos.

JavaScript es diferente. En unos pocos años, docenas de marcos han brotado como malezas. La comunidad de usuarios de JavaScript está muy fragmentada. Todos tienen su propia idea de la mejor manera de crear aplicaciones web del lado del cliente. Todos están tratando de superar a todos los demás. Entonces tenemos una especie de marco de la situación diaria . Angular fue el marco caliente de ayer. Hoy es React. Mañana, puede ser Vue o algo completamente diferente. ¿Quién sabe? ¿A quien le importa? Estos marcos tienen la vida útil de una mosca de la fruta.

El mundo sufre de “fatiga del marco”. Los desarrolladores están paralizados por demasiadas opciones. Es una situación totalmente caótica. Cuando se compromete e invierte fuertemente en un marco de JavaScript, corre el riesgo de quedar huérfano en unos pocos años. La gente pasará invariablemente al próximo nuevo marco brillante.

No veo que esta situación se resuelva sola en el corto plazo.

Esto no es una situación para JavaScript, ni JavaScript es el primero en encontrarlo.

Si observa esta interpretación de JS como una herramienta para hacer las cosas en lugar de un lenguaje, o algo más específico, puede volver a los transistores para encontrar este patrón de uso de una tecnología. Antes de que MS Windows hiciera increíblemente popular la máquina x86 compatible con IBM, la gente usaba muchas arquitecturas diferentes de CPU y computadora para resolver el problema que tenían de la manera más eficiente posible. Y desde aquellos tiempos, hemos visto este comportamiento en C y C ++ con marcos para desarrollar aplicaciones para diferentes tipos de hardware y / o aplicaciones.

Si bien muchas herramientas / idiomas / plataformas aún se están desarrollando activamente, la forma en que usamos JS y para qué la usamos es donde hay la mayor cantidad de cambios en la industria hoy en día. Aparte de eso, JS es actualmente una herramienta ‘genial’ y popular que no es particularmente difícil de hacer cosas geniales (cuando sabes cómo usarla bien), lo que significa que hay muchas personas haciendo cosas para resolver problemas a su manera, o para presumir.

No hemos visto esto tanto con otros idiomas más recientes porque generalmente están más definidos en su intención y todavía son adecuados para lo que la gente quiere usar. Go se introdujo con una biblioteca estándar muy sustancial para el propósito específico de resolver los requisitos de google (et al.) Para el desarrollo de servicios web, y lo hace muy bien, por lo que la mayoría de las bibliotecas / marcos que la gente ha producido han sido razonablemente menores modificaciones a la forma en que funciona. Hasta donde sé, Rust está en una posición similar, pero no lo he usado.

Python también tiene muchos marcos diferentes que se hacen de forma regular, pero con python se usa para tantas cosas diferentes, la mayoría de las personas solo están expuestas a un pequeño subconjunto de las opciones disponibles porque las otras no les son útiles. También existe la fragmentación dentro del ecosistema de python2 vs python3.

¿Mi opinión personal (y sé que mucha gente no estará de acuerdo conmigo)?

Debido a que muchas personas que “desarrollan” sitios web piensan que pueden desarrollar uno sin aprender nada sobre programación, si eligen el marco correcto (lo cual es totalmente falso), no puedes escribir un programa si no sabes cómo escribir un programa).

PHP tiene el mismo problema: CakePHP, Laravel, Symfony, CodeIgniter y Yii son solo algunos de los más comunes. Nuevamente, creo que es la idea de que si se trata de un sitio web, realmente no tiene que saber cómo analizar el problema y encontrar una solución (que es lo que es “programación”).

Es un tema interesante en el ecosistema de JavaScript que no se ve en otros idiomas.

Básicamente, muchas bibliotecas y marcos de JavaScript tienen como objetivo resolver los quarks y las trampas en este lenguaje. Sin embargo, no hay consenso entre estos desarrolladores; cada uno lanza sus propias soluciones. Por lo tanto, vemos soluciones duplicadas en este lenguaje.

¡Creo que es porque está realmente estructurado para quemar en un infierno de ola enorme! ¡JavaScript está extremadamente ordenado en el sentido de que hay casi millones de formas y componentes para producir el resultado complejo requerido! Todos los marcos pueden interoperar y usar formas y módulos similares. ¡Esto hace que sea fácil saltar a todas partes y es realmente genial!

su respuesta es, en una sola oración, el uso generalizado de los OOP y el concepto DOM, que son fáciles de escribir y de alto rendimiento.