introduccion-curso-nodejs

Introducción a Node.js

Node.js es un entorno de tiempo de ejecución de código abierto que se utiliza para ejecutar código JavaScript del lado del servidor.

Es decir, Node.js es un programa que nos permite ejecutar programas escritos en JavaScript. Escribes tu programa en JavaScript y la función de Node.js es coger tu código y ejecutarlo (por eso se llama “entorno de ejecución” 😉).

Cuando decimos “en el lado del servidor” nos referimos a que, gracias a Node.JS, JavaScript ya no tiene que ejecutarse exclusivamente dentro de una web. Pero esto no significa que Node.js sea sólo para servidores.

Puedes instalar Node.js en el ordenador de tu casa, y usarlo para lo que quieras. Por ejemplo, para escribir la lista de la compra de tu casa, y te olvides de comprar boniatos 🍆. O para listar los ficheros de una carpeta… para hacer el programa que quieras.

node-js-javascript-server

JavaScript contento de ejecutarse en tu ordenador

Cuando apareció Node.js fue una pequeña gran revolución. Era 2009 y ni la informática, ni JavaScript, eran como hoy en día. En esa época JavaScript se ejecutaba (casi) exclusivamente en el navegador, cuando te mostraba una página web.

Hasta ese momento las tecnologías del lado del servidor estaban principalmente basadas en lenguajes como PHP, Ruby, Java y Asp.NET. No había un entorno de ejecución para usar JavaScript, aparte de un navegador web.

Pero Node.js lo cambió todo. Ahora podemos ejecutar JavaScript para realizar tareas, fuera de una página web, como gestionar archivos, interactuar con bases de datos y crear servidores web en tu ordenador (o en un servidor).

Cómo funciona Node.js

Node.js se basa en el motor V8 de Google, que compila código JavaScript en código de máquina, en lugar de simplemente interpretarlo. Esto lo convierte en altamente eficiente y extremadamente rápido.

node-js-v8

No ese tipo de motor, pero casi

Uno de los aspectos más innovadores de Node.js fue su modelo de operaciones de entrada/salida no bloqueante (non-blocking I/O). Esto permite manejar múltiples solicitudes simultáneamente sin bloquear el flujo de ejecución.

Otra característica es un modelo de programación basado en eventos (event-driven). Esto significa que las operaciones como la lectura de archivos o las solicitudes de red, se gestionan como eventos. Cuando ocurre un evento, se ejecuta el callback correspondiente. Esto hace que Node.js sea muy eficiente en el manejo de operaciones asincrónicas.

Estas tres características estaban enfocadas a servir aplicaciones web escalables, de alto rendimiento, que atendieran a un gran número de peticiones. Como, por ejemplo chats en línea, juegos multijugador, aplicaciones de colaboración y más

Node.js como herramienta de desarrollo

Independientemente de que Node.js surgiera como tecnología para crear back-end de aplicaciones web, lo cierto es que enseguida empezó para usarse en muchas otras cosas.

Así, se empezaron a crear muchas herramientas enfocadas a mejorar la experiencia del desarollador. Si, digamos, tenías que copiar unos ficheros en tu ordenador (no en un servidor web, en tu ordenador), con Node.js podías hacer un sencillo script.

nodejs-herramientas-desarrollo

Al utilizar JavaScript, los desarrolladores web se sentían muy cómodos usando el mismo lenguaje que ya usaban que ya conocían y usaban cada día (no había necesidad de aprender otro lenguaje, podías usar JavaScript para todo).

Tanto Node.js como JavaScript se beneficiaban de eso. Así que se desarrollaron muchas muchas (repito muchas) herramientas que te ayudaban en el desarrollo. Es un circulo que se realimenta a si mismo.

Con ello, se generó una gran comunidad de desarrolladores y una amplia base de usuarios. Esto significa que hay una gran cantidad de recursos, tutoriales, bibliotecas y frameworks disponibles para ayudar en el desarrollo de aplicaciones.

Además, muchas empresas líderes como Netflix, PayPal, Uber y LinkedIn utilizan Node.js en sus aplicaciones. Esto la da más peso y confiabilidad, lo que favorece que otras empresas también lo usen.

Tanto, que a día de hoy Node.js es una herramienta imprescindible en el mundo de desarrollo. No solo como servidor web, si no porque literalmente casi cualquier cosa que quieras hacer hoy en día en desarrollo, requiere usar Node.js.

Por supuesto, como todo lo que tiene éxito en la vida, también han surgido competidores y alternativas. Pero, en general, intentar ser Node.js-Compatibles porque si no no se comerían los mocos se ha convertido en casi un estándar de facto.

Y por ese motivo, empezamos este curso de Node.js donde veremos el uso de esta herramienta que, a día de hoy, deberías conocer sí o sí si estás en el mundo del desarrollo.

Relacionado, consulta el curso de NPM