Node.js es una plataforma para desarrollar programas JavaScript independientes que se ejecutan independientemente de las aplicaciones de host, como los navegadores web. Se puede utilizar para programar scripts del lado del servidor, herramientas de red y aplicaciones web, entre otras cosas.
Te recomendamos leer: ¿Qué es la vectorización?
Historia y motivación
Originalmente, JavaScript solo se diseñó como un lenguaje de scripting integrado para navegadores web y otras aplicaciones. Bajo el eslogan «JavaScript en todas partes», Node.js quiere estandarizar el desarrollo web proporcionando también el lenguaje para la programación del lado del servidor.
Node.js fue desarrollado en 2009 por el programador Ryan Dahl. No estaba satisfecho con la forma ineficiente en que las aplicaciones web basadas en Apache y PHP manejan muchas conexiones simultáneas. Finalmente, decidió usar JavaScript para la programación del lado del servidor porque le gustaba el sistema de eventos asincrónico del lenguaje. Esto le permitió ejecutar una gran cantidad de funciones de entrada / salida en paralelo y de manera eficiente sin complicadas arquitecturas de subprocesos múltiples.
En 2012, Dahl entregó la gestión a un empleado para que pudiera concentrarse en otros proyectos. La Fundación OpenJS ha sido responsable de un mayor desarrollo desde 2019. Lanza una nueva versión cada seis meses, generalmente en abril y octubre. Una versión con soporte a largo plazo aparece una vez al año y se mantiene hasta por 30 meses. Node.js es un software de código abierto completamente gratuito y está bajo la licencia MIT.
Cómo funciona Node.js
Node.js se basa en el motor JavaScript V8 de Google, que también se utiliza en el navegador web Chrome. V8 es una máquina virtual basada en procesos que utiliza un compilador JIT para traducir el código JavaScript al lenguaje de máquina del hardware subyacente en tiempo de ejecución. Los compiladores Just-in-Time no solo admiten muchas de las optimizaciones estáticas de los compiladores anticipados comunes. Debido a que traducen el código mientras se ejecuta el programa, pueden optimizar el código de forma dinámica.
A diferencia de muchos lenguajes del lado del servidor como PHP, Node.js usa «E / S sin bloqueo». Los programas no tienen que esperar a que regresen las funciones de entrada / salida. Con la ayuda de las funciones de devolución de llamada, notifican a la función de llamada de su terminación y, por lo tanto, habilitan la ejecución asincrónica y paralela. Esto significa que muchas solicitudes de clientes simultáneas se pueden procesar de manera más rápida y sin problemas.
No te vayas sin leer: ¿Qué es JavaScript?
Node.js se puede expandir según sea necesario con módulos. El Node Package Manager, o npm para abreviar, puede buscar, instalar, eliminar, compilar y actualizar módulos y sus dependencias. En octubre de 2020 ya había más de un millón de paquetes en el repositorio Node.js. Los módulos no solo se pueden escribir en JavaScript. Con la ayuda de la N- API, los paquetes binarios se pueden programar en C / C ++ y lenguajes compatibles. También es posible cargar bibliotecas externas (DLL, SO, DYLIB) a través de una interfaz de función externa (FFI). Node.js también admite módulos WebAssembly.
Áreas de aplicación de Node.js
Aunque Node.js se utiliza principalmente para programas de servidor y herramientas de red, la plataforma no se limita a esto. Además de las herramientas de línea de comandos orientadas a la red, también son posibles herramientas generales para la administración del sistema. Con la ayuda de módulos como node-ncurses o drawille, se pueden programar programas de terminal de pantalla completa como el monitor del sistema vtop.
Node.js puede servir como backend para aplicaciones web como foros o sistemas de gestión de contenido, pero también para aplicaciones web y aplicaciones de escritorio. Entre otras cosas, el marco de Electron se basa en la combinación de Chromium y Node.js. Varias aplicaciones de escritorio populares se desarrollaron con Electron. Estos incluyen los editores de código Atom y Visual Studio Code, Microsoft Teams, así como los mensajeros Signal y Skype.
Las aplicaciones de escritorio de estructura clásica que no siguen la arquitectura de la aplicación web también son posibles con Node.js. Con el módulo NodeGUI, las interfaces gráficas se pueden programar basándose en el marco de la GUI Qt5. Existen paquetes como nodegl y sdl2-link para juegos y gráficos 3D.
1 comentario en «¿Qué es Node.js? Definición | Desarrollar programas JavaScript»