Go es un lenguaje de programación creado y catalogado por Google como el C del siglo XXI. Su lanzamiento oficial fue en noviembre del año 2009 y su primera versión estable apareció en marzo de 2012. Su versión más actual es la 1.4 que se lanzó en diciembre del 2014.

Los tres pilares fundamentales de Go son: eficiencia, rapidez de ejecución y facilidad de lenguaje. Para lograr cumplir con estas características, sus creadores se inspiraron en la versatilidad y las grandes cualidades de otros lenguajes como Python, Java, C++ y muchos otros. Pero dejando a un lado sus dificultades.

¿Cómo instalamos Go?

En esta ocasion vamos a utilizar una herramienta que nos va a permitir manejar multiples versiones de Go en nuestro equipo, esto es muy util cuando tenemos multiples proyectos en los cuales ellos manejan diferentes versiones, ademas de que tienen otras victaminas mas.

GVM es realmente simple de instalar, sólo copie-pegue este comando y su terminal y listo para comenzar.

zsh < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

Nota: Si utiliza bash, simplemente reemplace zsh con bash.

Vamos a ver ahora algunas otras funcionalidades que pose GVM que nos van a servir a la hora de crear un espacio de trabajo para nuestro proyecto con Golang.

Cree su primer conjunto de paquetes

Un conjunto de paquetes es un $ GOPATH dedicado, nada más (bueno, puede ser un poco más pero no está en el alcance de este artículo).

# Lista disponible versión go (local)
gvm list
# Lista disponible versión go (lista para ser descargada)
gvm listall
# Instalación go
gvm install go1.8
# Uso de una versión
gvm use go1.8
# Creando un pkgset
gvm pkgset create my-pkgset-name
# Configurar variables de entorno
gvm pkgenv my-pkgset-name
# Usándolo
gvm pkgset use my-pkgset-name

Flujo de trabajo

Para ser coherente, prefiero usar un pkgset por proyecto. Y para cada pkgset, modifico el entorno (gvm pkgenv pkgset-name) para incluir el directorio del proyecto en la variable $ GOPATH. (Estos temas estaran mas en detalle en otros artículos).

Por ejemplo, si tengo esta estructura de directorios:

~/go
 project-name
   src
    github.com
     …
    googlecode.com
    …
   bin
   package

Crearé un nombre de proyecto pkgset y agregará la ruta /home/MY_USER/go/MY_PROJECT al final de la variable $GOPATH(a través del comando gvm pkgenv project-name).

Nota: en el archivo de entorno no podemos usar el ~ ya que no se expandirá.