Node.js puede ser útil también para el front-end, con una posibilidad que me resulta bastante interesante pero con la que nunca he podido experimentar:
server side rendering. Es decir, procesar el JavaScript del lado del cliente en el lado del servidor y entregar un HTML estático ya generado, para luego inyectarle el JavaScript del cliente y que a partir de ahí siga el cliente.
La ventaja principal es que entregas al cliente un
HTML completo que no necesita de ejecución por el navegador, aunque posteriormente se ejecute todo ya con JavaScript. Durante mucho tiempo en el SEO se ha dicho que las páginas que necesitan de JavaScript para ser mostradas no se rastrean bien porque los bots no ejecutaban el lenguaje y, aunque ha mejorado mucho y al menos
Google sí es capaz de renderizar con JavaScript, en realidad siguen requiriendo atención u
optimización manual en algunos casos.
Algunos frameworks de JavaScript ya contemplan la posibilidad de realizar server side rendering,
como Vue.js. Con Vue.js en particular, puedes implementar una suerte de server side rendering dependiendo de la naturaleza del proyecto y de cómo implantes el framework (ya que Vue.js te permite implantarlo de muchas formas, como comentamos anteriormente). Por ejemplo, yo ya he implementado algo en plan server side rendering con el antiguo Angular.js (Angular 1.x) y PHP en aplicaciones de gestión.
Por otro lado, Nose.js
está presente en infraestructuras muy grandes como
en LinkedIn,
en Paypal o
en Netflix. En esas infraestructuras, no obstante, dentro del backend se suele utilizar como frontend. Es decir, se usa en los servidores backend que están "de cara al público", por así decirlo. En particular, en LinkedIn lo utilizan para manejar las peticiones que realiza la aplicación móvil, por ejemplo.
Cuando apareció Node.js fue bastante
revolucionario por el rendimiento y escalabilidad que permitía. Recuerdo que eso generó muchísimo hype, que tardó un poco en trasladarse al mundo empresarial español, como es normal por otro lado. Desde aquel momento han aparecido otras cosas como ASP.NET Core y PHP 7, que justamente elevaron el rendimiento de esos stacks a nuevos niveles, y que creo que le hicieron un poco de sombra.
En lo personal, veo Node.js más como una tecnología de nicho que como un stack generalista que vale para todo. Sus ventajas dependen mucho del caso particular en el que se desee implantar. Conozco algún caso en el que se usa Node.js para convertir librerías tradicionalmente de frontend en
Application as a Service, como
jsReport, y sé que existen empresas que lo tienen como único stack, pero a pesar de ello creo que es preferible, como programador,
conocer y dominar otros stacks más generalistas como pueden ser ASP.NET Core, Java/Spring o PHP, y luego conocer otros más de nicho como Node.js. Se pueden aprender varios, eh