rest api: spring boot vs node

rest api: spring boot vs node

en la practica es realmente spring boot mejor que node para rest api,

estoy por iniciar un nuevo proyecto y quiero hacerlo en spring boot + vue.js

que pueden opinar al respecto, saludos

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de apolonioluis

pero me mueve el tapete

pero me mueve el tapete algunas pruebas y el hecho de que linkedin migro de rails a node (obviamente mi app no sera para nada tan grande como linkedin)

Todo depende

Todo es subjetivo y depende el enfoque que tomes, primero siempre debe ser tu app y el cliente, al cliente le importa la tecnologia que uses en tu app ?, es una aplicacion que solo conecta servicios, lee archivos y hace consultas a una base de datos ?, o es una app con un alto consumo de calculos matematicos complejos o maneja series de datos en alto volumen (terabytes o mayor) ?.

Para solo hacer una pagina web si al cliente no le importa java o node y no haces uso intensivo de CPU, Nodejs es la opcion. Si tu enfoque es la tecnologia que tu equipo de desarrollo conoce, haz una encuesta no es para nada lo mismo Java que Javascript, es mas dificil encontrar buenos desarrolladores javascript que java, al menos esa es mi experiencia. Otro enfoque son tus gustos, que te gusta mas.

Toma en cuenta que likedin usa Nodejs no para todo, porque no es para todo, solo lo usa digamos en el Front (aunque incluye conexiones con diferentes servicios), ya que su principal middleware es Kafka (tecnologia java), en Paypal tienen algo similar y en Netflix tambien. Aprovechan las ventajas que cada plataforma tiene. Puedes usar los dos, Java para cosas de middleware y Nodejs como proxy web y como servidor de templates, esta muy de moda usar React en el browser y React server side rendering obvio con Nodejs, en un cosa que le dicen universal javascript .

En conclusion podemos decir que si tu app no es muy grande, deberias escoger Nodejs o Java basado en la misma razon por la que dejas de lado python, .Net, Go u otra plataforma para desarrollo (todas estas son muy capables de hacer rest api's y en terminos de rendimiento casi es lo mismo, al final malos desarrolladores hacen mal software), solo recuerda que haras una inversion (minimo de tiempo) y alcanzado cierto punto es mas caro tratar de cambiar que mantenerte (dependiendo de la complejidad de tu aplicacion).

Como comentario extra, porque Rest ? porque no Graphql?. Porque request, porque no push?, porque no solamente sirves el contenido estatico con nginx u otro webserver, y manejas lo dinamico solo con websockets, en Julio de 2018 tienen 93 % de aceptacion en los navegadores mas populares a nivel global. Rust tiene libreria para manejo de websockets ( y eso que es lenguaje nuevo), Java tambien tiene, seguro .net y Nodejs pues la libreria mas popular ya ha estado disponible desde hace mas de 5 anios.

Imagen de ezamudio

Performance

Aunque no seas linkedin, piensa en el performance.

Yo acabo de ver cómo en una semana reemplazaron un servidorsito de node para websockets, que tenían como 6 instancias corriendo para poder atender el volumen de usuarios, con un programita en Go que hacía lo mismo. En vez de un server con 6 instancias de node que se chupaban un montón de memoria y cpu, ahora tienen un docker con el programa en Go y está muy holgado, casi no usa CPU ni memoria, es muy eficiente.

Aparte de eso, en Java tienes muchas ventajas sobre node: El tipado estático te ayuda mucho a evitar errores que es muy fácil que te ocurran en node, el modelo de concurrencia de la JVM es órdenes de magnitud más eficiente y maduro, aunque uses un framework con callbacks vas a tener varios hilos para procesarlos, en vez de uno solo como en node. Tienes varios frameworks para hacer pruebas y ejecutarlas de manera automática cuando construyes tu servicio, lo cual también te evita muchas broncas. Y obvio también va a tener mucho mejor performance en Java que en node.