¿Golang es tan adecuado para el desarrollo web como los otros lenguajes web como: PHP, Python, C #?

Puede escribir sitios web con Go, si está dispuesto a escribir toda su aplicación desde cero. ¡Ir es un lenguaje fantástico! Pero por alguna razón, todavía no existe un marco maduro para el desarrollo web. Encontrará una gran cantidad de tutoriales sobre la facilidad con la que puede ejecutar un servidor http, simplemente usando la herramienta integrada. Pero en una aplicación del mundo real tiene muchas preocupaciones de que asistir a cada una de ellas de manera confiable (completamente probada) y funcional, necesite una gran cantidad de horas de trabajo, seguridad, administración de membresía, una arquitectura conectable y similares.

Por otro lado, existen herramientas y paquetes Go de alta calidad para sistemas distribuidos y API web, como goa (Design-first API Generation), que es un fantástico paquete de primer diseño, “un enfoque holístico para crear microservicios”.

He escrito C # durante casi 14 años (hasta 2015, cuando me mudé principalmente a Go) y puedo decir que todavía no encontrarás un ecosistema .NET real basado en Linux. Aunque si va a ser una tienda basada en MS, es una herramienta muy buena, no tan limpia y eficiente para ciertas tareas, como un servidor TCP.

PHP, nunca logré entender lo que está pasando.

Python, un lenguaje agradable, lo suficientemente extendido como para ser considerado una apuesta segura. En realidad, creo que se convertiría en mi compañero además de Go: el próximo candidato para mí es .NET Core (después de jugar con otros candidatos en algunos proyectos como Elixir, Clojure y .NET Core). Es un lenguaje de tipo dinámico (para algunos como yo, da un poco de miedo). Tiene muchas bases de códigos de alta calidad disponibles y si aprende a superar el infierno 2.7.x vs 3.x, estará bien.

Recientemente comenzamos a usar Go para nuestros microservicios. Puedo decir que ha sido sorprendentemente fácil construir aplicaciones del lado del servidor. Go tiene un buen soporte de biblioteca para hacer la parte real del “servidor” de la ecuación (y buenas bibliotecas en general) y la capacidad de generar pequeños binarios estáticos es una verdadera bendición en un mundo de microservicios.

También es muy rápido. Entonces, creo que lo desglosaría de esta manera:

  1. Go es probablemente tan rápido como C #; más rápido que PHP o Python.
  2. Es peculiar en algunos aspectos, pero la semántica del lenguaje definitivamente no es tan defectuosa como PHP.
  3. Está estáticamente escrito, lo que elimina muchos errores en comparación con Python, pero no parece que se interponga en su camino. Es fácil saltar y escribir código, que se parece mucho a Python.
  4. Los compiladores de Go son muy rápidos, lo que hace que el tiempo de respuesta para los cambios parezca que solo está recargando un módulo en Python.

Tenemos la intención de seguir usándolo. Para nosotros, al menos, definitivamente es adecuado.

Imho Go es mejor que C # (y Java), esta es la razón.

Lo uso solo para pequeñas secciones de mis proyectos, por ejemplo, Autocompletar (aquí hay un artículo sobre ellos) y es realmente rápido (más que Java) e intuitivo. Realmente no me gustan los lenguajes de tipo lote, así que en lugar de escribir int myNum = 0 , puedes escribir myNum := 0 .

Otras cosas hermosas son las importaciones múltiples como

importar (
hora
fmt
)

y la posibilidad de devolver múltiples valores

func vals () (int, int) {
volver 3, 7
}

Lo único malo es que el archivo generado es un poco grande. Para 310 líneas (con 13 importaciones, 7 métodos y 3 estructuras) es de 11 MB. Para un gran proyecto, realmente no lo sé.