Probablemente ya has oído hablar de NodeJS y que de alguna manera está relacionado con Javascript… Pero después de todo, ¿qué diablos está haciendo NodeJS?
NodeJS es un entorno de ejecución Javascript. Eso es bueno, pero ¿qué significa eso? ¿Cómo funciona?
También echa un vistazo: Javascript – ¿Qué es, cómo funciona y para qué servidor?
Probablemente escuchará a los desarrolladores que se refieren solo a Node y no a NodeJS.
El entorno de nodo tiene todo lo que necesita para ejecutar scripts en javascript, donde hasta entonces* era posible sólo en los navegadores. Le permite utilizar javascript como lenguaje backend y utiliza el motor javascript V8 desarrollado por Google para Chrome, por lo que si utiliza ese navegador está utilizando la misma máquina de ejecución javascript que el nodo.* Node
JS ha existido durante 9 años.
Motor V8
"V8 es el nombre del intérprete de JavaScript, también llamado la máquina virtual Javascript (o motor), desarrollado por Google y utilizado en su navegador Google Chrome. V8 es una herramienta desarrollada en el lenguaje C++ y distribuida en el régimen de código abierto.
El propósito de V8 es acelerar el rendimiento de una aplicación mediante la compilación de código Javascript en el formato de máquina nativa antes de ejecutarlo, lo que le permite ejecutar la velocidad de código binario compilado" – Wikipedia.
¿Por qué NodeJS?
"NodeJS utiliza un modelo "I/O" orientado a eventos y sin bloqueos que lo hace ligero y eficiente"
E/S significa "entrada" y "salida". Esto significa que cualquier tarea es una llamada HTTP hasta que lea un archivo en el disco.
Esto es muy importante porque el nodo es de un solo subproceso (consume sólo un procesador), no es 100% cierto, pero vamos a simplificar y dejar silencio por ahora, por lo que si tiene alguna función de bloqueo todo el código se verá comprometido y probablemente lento:
Imagine que ha desarrollado una API Rest que devuelve el contenido de un archivo de disco de su servidor, si desarrolla de forma blocante, supongamos que su archivo es pesado y tarda 1 minuto en leerse, cualquier siguiente llamada tendrá que esperar a que la primera llamada sea leída para que se responda e inicie el turno de su lectura. Usando el modelo sin bloqueo el nodo "pone en cola" estas llamadas, comienza a procesarlas en paralelo y responde tan pronto como sea posible.
Npm
Otra parte maravillosa del nodo está en su comunidad: NPM es el administrador de paquetes ("dependencias") de NodeJS, aquí encontrará las más variadas soluciones escritas por la comunidad. Probablemente te encontrarás con situaciones/problemas al desarrollar que alguna buena alma ha pasado y publicado un paquete NPM para hacer tu vida más fácil. ¡Todo este ecosistema hace que el desarrollo de aplicaciones en Node sea rápido y eficiente!
Próximos pasos
Bueno, ahora que ya sabes lo que es NodeJS recomiendas que de una xeretada en la documentación oficial es muy fácil, intuitivo y tiene buenos tutoriales para escribir tu primera aplicación en el nodo: https://nodejs.org