Xuaps

Clavo

NodeJS

Escoge la mejor herramienta para el trabajo a realizar.

El problema con la elección de NodeJS no es que sea un mal framework o que hayamos tenido un montón de problemas, sino que los motivos para elegirlo no fueron suficientes.

Cada vez que tomas una decisión, en este caso usar NodeJS o no, estás restringiendo tu espacio de posibles soluciones. Si leemos un poco encontraremos que NodeJS es un framework de servidor que se enfoca en un alto rendimiento concurrente. Eso parece bastante bueno, no es que sea uno de los requisitos para construir Refly pero mal no nos va a venir, seguimos, ¿qué más podemos encontrar?: corre en un único hilo, está basado en eventos, está escrito en javascript.

Es gracioso que el motivo por el que elegimos NodeJS sea el motivo por el que dudaría volver a escogerlo. No soy un “hater” de Javascript, me gusta, pero cuando vienes de programar con C#, DDD, NHibernate, etc… tu primer intento va a ser emular lo mismo en NodeJS. Es un error, hay mejores lenguajes y frameworks que harán el trabajo generándote la mitad de problemas.

He leído que una de las ventajas de usar NodeJS es que puedes compartir código entre el servidor y el cliente. Así a priori, sin ningún ejemplo concreto, me parece una mala idea que te va a dar más quebraderos de cabeza que otra cosa.
Nosotros en Refly, excepto por accidente, no compartimos nada. Lo de excepto por accidente no es casual, es real. Hemos notado que al no cambiar de lenguaje cuando estás cambiando entre código de cliente y de servidor alguna vez nuestro cerebro no ha hecho el cambio de contexto y hemos provocado alguno de esos accidentes.

A parte de estas cosas más o menos anecdóticas están todos los problemas que tiene JavaScript que, dependiendo de tu dominio, pueden ser más o menos importantes como por ejemplo sumar números o que es muy lento.

Por otra parte NodeJS tiene una comunidad y un ecosistema impresionante. El gestor de paquetes NPM es una de esas herramientas geniales. Prácticamente cualquier cosa que busques está implementada y si no, la puedes implementar tu de una manera sencilla y rápida. Las ideas sobre las que todo está construido son buenas y sólidas, tanto, que de alguna u otra manera ya han contagiado a otros frameworks y plataformas.

Resumiendo, no diría que NodeJS es para prototipar como he leido por ahí, pero cuando compras NodeJS tienes que saber lo que estás comprando. Así que puede que otra vez no vaya por el paquete entero y me quedé sólo con las ideas porque, y en esto sí que acertó NodeJS, son el camino para construir la web moderna.