Todavía no he trabajado en ningún proyecto que requiera Go como solución de fondo. Sin embargo, como leí sobre el lenguaje y lo probé en algunos proyectos de prueba, puedo dar mi opinión y tratar de compararlo con Node.js.
Node.js se basa básicamente en la pila completa de JavaScript. Si está utilizando otros componentes de MEAN stack que Node.js es una opción obvia. Escuché que es una exageración para las API REST simples, sin embargo, considero que es más rápido que PHP o ASP .Net cuando construyo API. También funciona rápido, debido a que no depende de un contenedor separado. Es totalmente personalizable, por eso me gusta mucho.
Ahora el problema es que depende demasiado de las promesas y devoluciones de llamadas de JS. Se ejecuta en un único subproceso, por eso es más rápido que cualquier otra aplicación multiproceso, pero cuando tiene una operación compleja que bloquea el único subproceso, su aplicación completa se detiene. He usado otros hacks para superar esto, pero debes saber que un hack es siempre un hack.
- ¿Alguna MacBook es buena para el desarrollo web y el desarrollo de aplicaciones de Android en comparación con Windows o Ubuntu?
- ¿Cuál es la mejor manera de aprender Backbone.js?
- ¿Dónde puedo encontrar ofertas de trabajo como desarrollador web que incluyan el patrocinio de Visa?
- ¿Elegirías entre prestashop y WordPress u otro CMS para hacer contenidos estáticos en diferentes idiomas?
- ¿Puedo poner un menú de wordpress como contenido de la página?
Soy fanático de Node.js, aunque odio JavaScript. Me encanta su modularidad y escalabilidad. Pero por lo que he escuchado, las compañías que han estado desarrollando soluciones de backend en Node.js por un tiempo se están moviendo hacia Go ahora. Especialmente aquellos que tienen algún tipo de procesamiento de back-end, como procesamiento de texto, procesamiento de imágenes, aprendizaje automático, etc. Eso se debe a la razón mencionada anteriormente.
En mi opinión, Node.js es una mejor opción, excepto cuando no lo es. Obtendrá mucho apoyo de la comunidad y, lo más importante, NPM en el lado de Node.js. Pero eso es realmente dudoso en Go side según mí. Si no está buscando una operación compleja en el back-end, le sugiero que pruebe Node.js, pero si necesita un entorno multiproceso y no necesita soporte de la comunidad en forma de paquetes, elija Ir.
Encontré un artículo en el que una empresa explicaba su cambio de Node.js a Go, aunque es parcial, pero informativo:
De Node.js To Go, por qué una startup hizo el cambio: la nueva pila
Descargo de responsabilidad: podría estar equivocado sobre Go, ya que aún no lo he probado en un entorno de producción.