¿Me estoy perdiendo algo si no he aprendido Go como programador de sistemas?

Una de las primeras cosas que debe averiguar es si la recolección de basura se puede tolerar en su campo o no. Si puede usar un idioma recolectado como basura, siga leyendo.

Go tiene una biblioteca de red muy competente para escribir servidores de socket o servidores HTTP integrados en su aplicación, en lugar de ser un contenedor en el que se implementa su aplicación. He seguido el patrón de hacer que mis servidores de red funcionen en dos puertos, uno de los cuales es un puerto de control para la creación de perfiles, recopilación de estadísticas, control de tiempo de ejecución, etc.

El modelo de concurrencia de Go es extremadamente fácil de programar y permite un amplio conjunto de comportamientos asíncronos a través de la combinación de gorutinas, canales y la palabra clave de flujo de control “select”. Go puede hacer por la productividad y la corrección del código concurrente lo que hizo la recolección de basura para la administración de la memoria.

Go es un orden de magnitud mejor en términos de productividad en comparación con C o C ++. El no. de intentos que requiere que el código se compile y que el código compilado se ejecute correctamente es más pequeño. La cantidad de código que necesita escribir también es menor.

Si usa herencia o plantillas en C ++, recuerde que esas dos características no están disponibles en Go. Hay formas de simular el comportamiento de OOP en Go [1] y Go toolchain puede ayudar a implementar algo similar a las plantillas de C ++ (generación de código para parámetros de tipo) [2].

[1] Semántica de herencia en Go
[2] Genéricos idiomáticos en Go