¿Qué es Node.js?

  • Trabajo con Node.js los últimos 2 años
  • Coordinador de los cursos Fullstack y Node.js en Coderhouse
  • Miembro del grupo que organiza NodeSchoolBA y BANode.js
  • Veo muchas series (Daredevil alguien?)

Quién soy

JavaScript

  • Tipado dinámico
  • Herencia prototipada
  • Funciones de órden superior

Asincronismo

alert("esto es bloqueante");

Qué NO es Node.js

No es:

  • Un lenguaje de programación
  • Un servidor
  • Un framework
  • Una aplicación para hacer páginas web
  • Una libreria

Node.js

"Node.js es una plataforma construida sobre el JavaScript runtime de Chrome. Node.js usa un modelo dirigido por eventos basado en I/O."

https://nodejs.org

Simplificando un poco...

Node.js provee una forma de ejecutar código JavaScript fuera del browser.

Motivaciones

Motivaciones

  • Red
  • Sistema de archivos
  • Sistema Operativo
  • Bases de datos

Módulos internos

fs

http

stream

util

child process

os

crypto

y muchos otros...

net

Características

  • Es un proyecto Open Source
  • Cross-plataforma
  • Generalmente, debido a su naturaleza asincrónica, los servidores web construidos con Node.js terminan logrando mejor performance contra otras tecnologías (PHP + Apache, .Net + IIS, etc).
  • Escalable a requerimientos de grandes cantidades de tráfico

Ecosistema

  • Es impulsado por la comunidad Open Source
  • Utiliza npm cómo manejador de paquetes, siendo npm el manejador de paquetes más grande del mundo.
  • Adopta la filosofía Unix:

"Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface."

Quienes lo usan

Disclaimers

  • No es un reemplazo de la tecnología X
  • No es la solución óptima para todos los problemas (procesamiento de imágenes o video, por ejemplo)
  • Si bien hay buena cantidad de recusos sobre JavaScript en español, no es tan así con recursos sobre Node.js

Ok. ¿Cómo aprendo?

Cursos presenciales:

Participá

¿Preguntas?

Mirá esta charla en 

bit.ly/que-es-node

@a0viedo

Made with Slides.com