¿Para quién estoy escribiendo? Para aquellos que escriben en php (posiblemente también python, ruby) y han escuchado sobre Go, pero aún no han decidido estudiarlo con más detalle. Explicaré por qué vale la pena aprender este lenguaje de programación y por qué el futuro está en el desarrollo web.
He estado escribiendo php durante aproximadamente 12 años y es un excelente lenguaje de programación, el 90% de los sitios de Internet están escritos en él. Casi todos los CMS populares están escritos en PHP.
¿Por qué cambié (o más bien cambié) a Ir?
Multithreading
En principio, todo está claro aquí. Multithreading proporciona enormes beneficios a un lenguaje de programación. En Go, el subprocesamiento múltiple se implementa de manera muy simple y expresiva. En el próximo párrafo revelaré los beneficios que afectan el desarrollo del sitio.
El medio ambiente
¿Qué necesito para crear un sitio normal en PHP?
Servidor en Linux, instale Nginx, a veces Apache, instale PHP, extensiones, base de datos, Memcache, configure Cron. Para no ser dolorosamente doloroso mantener el servidor, puse todo en Docker. Así es como se ve mi proyecto Docker PHP habitual.

¿Eso es familiar?
¿Qué necesitas para crear un sitio web normal en Go?
Servidor en Linux e instale Go. Eso es todo. Genial Esto se debe a que Go es multiproceso y cualquier funcionalidad se puede mover a una secuencia separada, por ejemplo, un servidor web, microservicios, colas, coronas, etc. Muchas cosas ya están implementadas en paquetes básicos.
¿Cómo se ve mi proyecto Docker para Go? De hecho, no existe en absoluto. Puse los archivos Docker directamente en la carpeta con el sitio o el código de servicio. Si el sitio tiene microservicios adicionales (por ejemplo, para trabajar con colas), su Dockerfile se coloca en la carpeta con este servicio.

Umbral de entrada
Aprender el idioma Go es fácil. Puede desplazarse por toda la documentación en un par de horas y comprender el principio del lenguaje sin profundizar. Creo que Go tiene la documentación más corta de lenguajes compilados populares.
En el sitio web oficial, puede realizar un
recorrido de estudio que revelará todos los aspectos del idioma.
Profundizar su conocimiento teórico a los profesionales en muy poco tiempo. Recomiendo
cursos de Mail.ru en YouTube .
Legibilidad de código
¿Tuviste tal que abriste el código, módulo, complemento, etc. de otra persona? y entiendes que no entiendes nada. Y para comprender las complejidades, debe al menos revisar el código principal con depuración.
En Go, en la mayoría de los casos, al abrir un código feroz para 200 archivos y cada archivo de código de toalla, te sorprende que puedas entenderlo.
IDE
Escribir en JetBrains IDE bajo PHP y bajo Go son cosas completamente diferentes. La finalización automática funciona siempre y en todas partes (99% de los casos). ¡Puedes fallar en cualquier método, en cualquiera!
No hay frenos en absoluto. Con palabras en general, es difícil de describir, debe intentarlo. Cuando comienzas a escribir completamente en Goland, entiendes que ya no quieres volver a PhpStorm.
El año anterior para hylood, le pregunté a Dmitry Stogov sobre los planes para introducir multiprocesamiento "nativo" en PHP y parece que no lo veremos, pero es una pena.
Depuración y prueba
Muchos desarrolladores de PHP no utilizan la depuración en absoluto porque debe instalarse por separado como una extensión, también debe configurarse correctamente y muchos simplemente no se molestan y usan la salida de la página. En Go, la depuración está integrada, de hecho, no tiene que descubrir cómo funciona en el interior, si usa el IDE, simplemente ponga un punto de interrupción e inicie el programa.
Con las cosas de prueba son aproximadamente iguales, no necesita conectar todo el marco al proyecto, ya está integrado en los paquetes base y el IDE.
Rendimiento
Go es mucho más rápido que PHP en términos de velocidad de ejecución y consumo de memoria. Por supuesto, compararlos no es correcto, ya que Go es un lenguaje compilado. Hay un buen artículo en comparación de productividad
en Habré . Por ejemplo, tengo un servicio Mirkos en un entorno Docker completo, que solía ocupar 100-200 mb de RAM, cambiar a Go toma 1-2 mb. El aumento de la velocidad es de 2 a 5 veces.
Resumen
Me encanta PHP y continuaré escribiendo sobre él según sea necesario, pero Go fue una continuación del desarrollo para mí y si reescribiera PHP desde cero, se convertiría en el lenguaje Go.