¿Por qué es tan popular JavaScript?
A partir de 2019, JavaScript es posiblemente el lenguaje de programación más popular que ha existido. Sin embargo, su ascenso ha sido una sorpresa y una decepción para muchos. Entonces, ¿por qué JavaScript se ha vuelto tan popular?
En orden de prioridad, aquí están las razones por las que creo que JavaScript ha sido tan altamente adoptado, si no recibido.
1. Escalable
Puede que no tenga las características de alto rendimiento de C o Java, pero su naturaleza ligera hace que sea fácil de ejecutar en paralelo. Lo que hace que sea muy adecuado para ejecutarse en un gran conjunto de ordenadores baratos. Y como el escalado horizontal es generalmente mejor que el vertical, esto es una gran ventaja.
2. Asíncrono
JavaScript ofrece una mejor solución a las operaciones de bloqueo. Casi todos los demás lenguajes resuelven esto con hilos, pero los hilos hacen que los programas sean impredecibles, lo que los hace difíciles de escribir y depurar. JavaScript resuelve las operaciones de bloqueo con callbacks y promesas dando al programador el control del flujo de ejecución.
3. Algo para todos
JavaScript implementa múltiples paradigmas, procedimental, oop y funcional. Esta mezcla da a todos algo de lo que quieren. Lenguajes como Go o Haskell, fallan en esto y por lo tanto es poco probable que cualquiera de ellos sea alguna vez tan popular como lo es JavaScript ahora.
4. Se ejecuta en la web (y en todas partes)
JavaScript es el lenguaje principal de un poco de tecnología llamada la world wide web. Es prácticamente el único lenguaje que se ejecuta en el navegador. Ahora también se ejecuta en cualquier otro lugar, desde pequeños chips hasta potentes servidores. El hecho de poder ejecutarse tanto en el cliente como en el servidor ha abierto nuevos modelos en los que el código puede compartirse entre el front y el back end.
5. Rendimiento
JavaScript no es el lenguaje más rápido pero es rápido. Esto, combinado con la escalabilidad, la asincronía y la facilidad de uso, hace que JavaScript sea ideal para la mayoría de las tareas.
6. Facilidad de ejecución
Conseguir que un servidor web funcione en Node.js es sencillo y rápido. Requiere poca sobrecarga y se ejecuta en Unix, Windows y Mac. JavaScript requiere muy poca configuración del entorno y no tiene ningún paso de compilación, lo que lo hace ideal para ejecutarse dentro de Docker y en funciones en la nube.
7. Comunidad
La mayoría de los lenguajes populares tienen buenas comunidades y JavaScript no es una excepción. Debido a su popularidad actual, la tasa de crecimiento en términos de apoyo, por ejemplo, tutoriales, libros, respuestas de stackoverflow… es impresionante. Los frameworks y librerías de JavaScript son amplios y están mejorando. Hay código abierto para hacer casi cualquier cosa.
8. Estándar abierto
JavaScript no es propiedad de una gran corporación, por ejemplo C#, Swift, Java, Go o controlado por una sola parte, por ejemplo Python. Esto le da la libertad de crecer sin otra agenda que la de ser mejor. Y el comité que supervisa el estándar se ha comprometido a realizar actualizaciones anuales. Trayendo a JavaScript un flujo constante de nuevas características.
9. Fácil de empezar
Aunque JavaScript no es tan fácil de dominar, es fácil de empezar. Si has programado en cualquier otro lenguaje puedes empezar a programar en JavaScript básicamente de inmediato. Y si nunca has programado antes JavaScript te hará escribir programas básicos rápidamente.
10. En mi experiencia, la programación en JavaScript tiende a ser más rápida. He programado profesionalmente usando 5 lenguajes diferentes y he usado otros 5 más o menos casualmente. De todos ellos JavaScript tiende a hacer el trabajo más rápido. Esto es en gran parte debido a todo lo demás en esta lista, pero también la naturaleza dinámica de JavaScript permite al programador centrarse en el problema central que necesita resolver.
11. Diversión
Obviamente esto es muy subjetivo. Pero creo que JavaScript es muy divertido de programar. JavaScript, es2015 en adelante se siente limpio y moderno. Qué no se puede amar de async y await.