Go se anunció originalmente como un lenguaje experimental en el 2009. Es expresivo, concurrente, de código abierto, desarrollado por Google. Tiene una sintaxis tipo C con muchas características extras, buscando ser conciso, limpio y eficiente. Compila a código de máquina rápidamente, pero ofrece la conveniencia del recolector de basura.
El siguiente video es de una plática en OSCON 2012, en donde Andrew Gerrand y Rob Pike, de Google (este último, el creador original de Go y uno de los que trabajaron en Unix desde su creación en Bell Labs.), describen cómo y por qué se desarrolló este lenguaje:
La nueva versión, Go 1.3, llega seis meses después de haberse liberado la anterior y da mejor desempeño, herramientas mejoradas y soporte para que Go pueda correr en nuevos entornos.
Entre lo destacable de esta versión es la capacidad de hacer algo que han llamado godoc, el servidor de documentación de Go, que desempeña un análisis estático. Se puede elegir tener resultados del análisis del código fuente y de las vistas que hace el paquete de documentación, haciendo más fácil navegar y entender los programas escritos en Go.
Las mejoras en el desempeño de los binarios de Go son gracias a los cambios en el módulo de ejecución (runtime), con un recolector de basura mejorado, una estrategia de manejo de stack nueva, y mejoras en el motor de expresiones regulares, entre otras.
La nueva versión tiene soporte experimental para DragonFly BSD, Plan 9 y Solaris. Otras mejoras es el soporte a clientes nativos (NaCL -Native Client) en un sandbox de 32 y 64 bits (arquitectura Intel). Esto permite la ejecución sin riesgos de código poco confiable o de terceros.
He aquí un paseo por Go:
Cuando Go llegó a los cuatro años de edad, Mike James escribió: “No hay manera de evitar el hecho de que Go es un lenguaje de minorías, pero esto no significa que no pueda convertirse en algo importante en el nicho de lenguajes”. Bueno, sin duda un bonito deseo, pero aún no está donde lo quieren poner.
Referencias:
Guía de programación de Go (4 partes)
Descargar Go desde Golang
i-programmer