Dice la Wikipedia que Go es un lenguaje de programación concurrente y compilado inspirado en la sintaxis de C. Ha sido desarrollado por Google y sus diseñadores iniciales son Robert Griesemer, Rob Pike y Ken Thompson. Estos nombres son conocidos en el mundo de la programación.

Actualmente está disponible en formato binario para los sistemas operativos Windows, GNU/Linux, FreeBSD y Mac OS X, y puede también ser instalado en estos y en otros sistemas con el código fuente.

Go es un lenguaje de programación compilado, concurrente, imperativo, estructurado, orientado a objeto, con recolector de basura (garbage collector), que de momento está soportado en diferentes tipos de sistemas UNIX, incluidos Linux, FreeBSD y Mac OS X. También está disponible en Plan 9 puesto que parte del compilador está basado en un trabajo previo sobre el sistema operativo Inferno. Las arquitecturas soportadas son i386, amd64 y ARM.

Ahora se anuncia una versión actualizada, al 1.7, que soporta también sistemas z de IBM, y tiene mejoras en el compilador. De hecho, el soporte para sistemas z viene de haber portado Linux corriendo en los sistemas z (s390x). Esto es aún experimental pero aún así la nueva versión incluye la idea de portar Plan 9 en ARM.

El compilador se ha redesarrollado y la intención ha sido la de hacer la optimización avanzada de forma más sencilla. De acuerdo con el blog del lenguaje: «Este nuevo ‘back end’ genera código más compacto, más eficiente, el cual incluye diversos tiempos de optimización, así como eliminación de subexpresiones».

Se observa una mejora entre el 5% y el 35% en las pruebas características (benchmarks). Por ahora, el back end solamente está disponible para la versión de 64 bits x86 («amd64»), pero ya hay planes para convertir más arquitecturas a este back end en las siguientes actualizaciones.

Combinando esto con el front end del compilador se tiene una velocidad significativa en el tiempo de compilación y la reducción del código objeto de entre 20 al 30%. Otras mejoras en el desempeño es el recolector de basura y la optimización en la biblioteca estándar que también está ayudando a que todo corra más eficientemente.

Un cambio interesante en esta nueva versión es apelar a que los programadores de Go empiecen a usar más los «contextos». Estos se usan para diversas cuestiones. Los contextos son útiles en aplicaciones relacionadas con redes, infraestructura y microservicios como Kubernetes y Docker. La idea es motivar a los desarrolladores a que usen esta nueva facilidad la cual no parece poca cosa.

Hay otras mejoras en esta versión 1.7. Se puede descargar del sitio oficial.

Referencias: Go (Descargas)Go (Blog)i-programmer