En los últimos años se han puesto muy de moda tecnologías como MongoDB, Node.js y AngularJS, lo que ha hecho que haya surgido una nueva corriente para la construcción de aplicaciones web rápidas, robustas y mantenibles usando las tecnologías de MongoDB, Express, AngularJS y Node.js.
El uso de estas 4 tecnologías juntas conforman el llamado “stack MEAN” (MEAN = Mongo-Express-Angular-Node) que tienen como nexo común la utilización del mismo lenguaje de programación (JavaScript). Por tanto con estas 4 tecnologías tenemos todo lo necesario para desarrollar aplicaciones web: Frontend, Backend y Base de Datos.
MongoDB es un sistema de base de datos documental no relacional de código abierto, conocido también (aunque mal dicho en mi opinión) como base de datos NoSQL. Este sistema de base de datos, guarda los datos en documentos en formato JSON (en realidad los guarda en formato BSON), lo que hace que sea un formato muy manejable y entendible para trabajar con él, y las operaciones (o “consultas”) sobre estos documentos se realizan en JavaScript. De MongoDB cabe destacar su flexibilidad y escalabilidad, lo que ayuda al desarrollo ágil de proyectos software. Son muchos los lenguajes que pueden trabajar con MongoDB (Java, PHP, Python, etc.) y por supuesto NodeJs es uno de ellos.
Express es un framework realizado en NodeJs muy ligero y flexible que proporciona un un conjunto muy robusto de facilidades para crear fácilmente servidores web y recibir peticiones HTTP; por tanto, permite desarrollar API REST de forma muy rápida.
AngularJS es un framework para Frontend desarrollado por Google (vamos que va a tener éxito si o si) que sigue el patrón MVC (Model-Vista-Controlador), aunque la propia gente de Google dice que sigue el patrón MVW (Model-View-Whatever (whatever works for you)). AngularJS permite crear lo que se llama Single-Page-Applications, que son aplicaciones web que no necesitan recargar la página (vamos que con AngularJS “te regalan el AJAX” aunque esto que digo no es 100% correcto). Para terminar decir que AngulaJS es un framework muy potente y que facilita muchísimo la labor de los desarrolladores de Frontend. Darle caña a este framework ya que es de los que más me han sorprendido últimamente.
NodeJS es un entrono de programación en la capa del servidor basado en el motor V8 de JavaScript, orientado a eventos no bloqueantes, lo que lo hace muy rápido y permite crear programas de red altamente escalables (servidores web) y emplear el “tiempo real”. En los últimos años esta tecnología esta teniendo mucho auge y ha hecho que exista una comunidad de desarroladores bastante amplia y potente, por lo que tiene pinta que esta tecnología tendrá cierto éxito a corto-medio plazo.
Dado el éxito que esta teniendo MEAN para el desarrollo de aplicaciones web, están surgiendo proyecto que proporcionan esqueletos de aplicación MEAN tales como MEAN.IO o MEANJS.ORG.