Por qué JavaScript es el lenguaje de programación del futuro

JavaScript fue el primer lenguaje de programación que aprendí. Bueno, de hecho comencé con HTML y CSS. Al igual que muchos otros desarrolladores web, usar JavaScript fue una obviedad. Esto se debe simplemente a que se combina muy bien con HTML y CSS, y en realidad también mejora sus habilidades de HTML / CSS. He desarrollado aplicaciones y juegos en varios otros lenguajes de programación, incluidos Java, Swift, C ++, Dart. Pero la flexibilidad que ofrece JavaScript es inigualable, aunque podría considerarse mala para los principiantes, ya que ofrece más opciones de las necesarias para realizar una tarea sencilla.

Hoy, JavaScript es uno de los lenguajes más poderosos del planeta debido a su desempeño y omnipresencia.

Personalmente, siento que JavaScript tiene el potencial de aprovechar tantas industrias populares como el aprendizaje automático y el análisis de datos, donde Python todavía gobierna el juego. ¡Incluso está sucediendo ahora con herramientas como Tensorflow.js!

Sin embargo, este definitivamente no era el caso de JavaScript antes. Anteriormente, era un lenguaje débil, sin rendimiento y estaba mal visto. JavaScript era para "perdedores".

Pero ya no más. Veamos cómo JavaScript cambió las tornas en los últimos 10 años, por qué se ha vuelto más fuerte que nunca y por qué llegó para quedarse.

V8: La bestia que impulsa JavaScript

V8 es en realidad un motor JavaScript. ¿Qué es un motor de JavaScript? Un motor de JavaScript es un intérprete que ejecuta código JavaScript. Un motor de JavaScript se puede implementar como un intérprete estándar o como un compilador Just-In-Time (JIT) que compila JavaScript en código de bytes de alguna forma.

V8 es el motor JIT de JavaScript y WebAssembly de código abierto de alto rendimiento de Google, escrito en C ++. Se usa en Chrome y en Node.js, entre otros. V8 puede ejecutarse de forma independiente o puede integrarse en cualquier aplicación C ++.

Esta es la pieza de software que optimiza en gran medida su código JS y lo convierte en código de máquina para que lo ejecute la CPU. Algunas de las tareas que maneja V8 son:

  1. Recolección de basura
  2. Compilación a código de máquina
  3. Almacenamiento en caché en línea
  4. Compresión de puntero
  5. y mucha mucha más optimización

De hecho, la compresión de puntero es una técnica muy nueva en V8 para aumentar la optimización de la memoria sin afectar el rendimiento. Si eres un geek, puedes leer más sobre cómo se implementa en el blog oficial de V8.

La conclusión de esto es que puede escribir JavaScript y dormir tranquilo por la noche porque su código JS está en muy buenas manos.

Ecosistema y comunidad maduros

JavaScript tiene uno de los ecosistemas más maduros, si no el más maduro, que un lenguaje de programación podría tener. La comunidad de JavaScript es enorme y la barrera de entrada es extremadamente baja.

Puede iniciar un navegador (que se encuentra en el 100% de las computadoras personales), abrir la consola y encontrará un motor JS esperando que ejecute el código. Este nunca fue el caso con otros lenguajes de programación de tal complejidad.

Como si la vasta comunidad no fuera suficiente, tenemos los sistemas de paquetes npmy yarn. Lo nombra y hay un paquete para eso en el npmregistro: todo, desde la creación de cadenas aleatorias hasta el manejo de flujos y búferes en JavaScript. Hay un dicho muy famoso entre los desarrolladores de JavaScript:

Lo que se puede hacer en JavaScript, eventualmente se haría en JavaScript

Es gracioso, pero discreto, creo esto.

Si ingresa como principiante, hay muy pocas posibilidades de que encuentre un problema que nadie haya encontrado antes. Esto se debe a que es probable que ya se hayan preguntado y archivado todos los posibles errores por problemas simples de JavaScript en sitios como Stack Overflow.

Los marcos y bibliotecas como React, Angular y Vue están allanando el camino para la construcción de aplicaciones futuras. Están cambiando la perspectiva hacia la programación declarativa en lugar de imperativa, el qué en lugar de cómo. Esto permite a los desarrolladores desarrollar aplicaciones de calidad sin preocuparse por el código subyacente de alto rendimiento.

Omnipresencia

JavaScript está presente en:

  1. Interfaz (navegadores)
  2. Back-end (nodo, Deno)
  3. Android / iOS (React Native, NativeScript, etc.)
  4. Escritorio (Electron)
  5. Híbrido (iónico)

¿Qué hace esto posible? Los motores JS como V8 están escritos en C / C ++ e incluso se pueden compilar en sistemas integrados. Para otras plataformas, debido a que los navegadores siempre están presentes (como en Andorid / iOS), se envían con un motor JS que luego se puede usar para ejecutar cualquier código JS, incluso para aplicaciones nativas en el caso de React Native.

Características y avance del borde sangrante

Los estándares de JavaScript están dirigidos por la comunidad ECMA-262 TC39, ¡y esta gente es rápida! ECMAScript lanza un nuevo estándar de JavaScript cada año (¡vea las nuevas características de ECMAScript2020!). Usted, como desarrollador, puede incluso solicitar que se agreguen nuevas funciones al idioma.

Por ejemplo, aquí hay algunas características de vanguardia pendientes que podrían convertirse en JavaScript en un futuro cercano:

Puedes encontrar todas las propuestas aquí: TC39 Proposals.

JavaScript es RÁPIDO y ESCALABLE

Por supuesto, nada supera a C / C ++ / Rust, pero JavaScript es rápido, en el sentido de que V8 puede generar código altamente optimizado al monitorear cómo se ejecuta su código, retrasando los bits de ejecución que no se utilizan y optimizando los segmentos de código. que se utilizan una y otra vez. Especialmente en comparación con sus competidores más cercanos como Python. Con los avances en V8, se está volviendo aún más eficiente y eficiente en memoria.

JavaScript (nodo) es altamente escalable (con superconjuntos como TypeScript). Al ejecutarse en una arquitectura de un solo subproceso, la gente a menudo critica a Node por su falta de entorno de subprocesos, pero la realidad es que no importa mucho.

La forma en que escala las aplicaciones de nodo no es similar a la forma en que escala una aplicación de subprocesos múltiples. Nodo significa literalmente "nodo": un solo nodo en un árbol de procesos. El nodo se escala ejecutando varias instancias del mismo y administrando el clúster.

JavaScript lidera el modelo de programación basado en eventos asíncronos de la industria y no necesita subprocesos para escalar. En su lugar, se podrían generar procesos de nodo individuales para manejar y utilizar el núcleo completo de la CPU. ¡Más sobre escalar Node más adelante!

Conclusión

Me encanta JavaScript y, al usarlo, he creado una plataforma de desarrollo para desarrolladores como tú. Allí no solo puede aprender JavaScript, sino también otros lenguajes como C, C ++, Java, Node, Python y más. ¡Únase aquí gratis y aprenda con otros desarrolladores directamente desde su navegador!

JavaScript llegó para quedarse y dominar la industria en esta década. ¿Estás de acuerdo? Dime en mi cuenta de Twitter e Instagram: ¡conectemos!