← Volver al listado de tecnologías

Introduccion a Go e Instalacion

Por: Artiko
gogolangintroduccioninstalacion

Introduccion a Go e Instalacion

Que es Go

Go (o Golang) es un lenguaje de programacion de codigo abierto creado en 2009 en Google por Rob Pike, Ken Thompson y Robert Griesemer. Nacio de la frustracion con la complejidad de C++ y la lentitud de compilacion en proyectos grandes de Google.

La filosofia de Go se resume en:

Por que aprender Go

CaracteristicaGoCRustPython
CompilacionMuy rapidaRapidaLentaInterpretado
Garbage CollectorSiNoNoSi
ConcurrenciaGoroutinesThreads/pthreadsasync/Threadsasyncio/GIL
Curva de aprendizajeBajaMediaAltaBaja
Binario estaticoSiSiSiNo
Velocidad ejecucionAltaMuy altaMuy altaBaja
Manejo de memoriaAutomatico (GC)ManualOwnershipAutomatico (GC)

Go es ideal para:

Instalacion

Linux

# Descargar desde go.dev (ajustar version)
wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz

# Eliminar instalacion previa e instalar
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz

# Agregar al PATH (~/.bashrc o ~/.zshrc)
export PATH=$PATH:/usr/local/go/bin

macOS

# Con Homebrew
brew install go

# O descargar el .pkg desde go.dev

Windows

# Con winget
winget install GoLang.Go

# O descargar el .msi desde go.dev

Verificar instalacion

go version
# go version go1.22.0 linux/amd64

Tu primer programa

Crea un directorio y un archivo main.go:

mkdir hola-go && cd hola-go
go mod init hola-go
package main

import "fmt"

func main() {
	fmt.Println("Hola, Go!")
}

Ejecuta de dos formas:

# Ejecutar directamente (compila y ejecuta en memoria)
go run main.go
# Hola, Go!

# Compilar a binario y ejecutar
go build -o hola main.go
./hola
# Hola, Go!

Estructura de un archivo Go

Todo archivo Go tiene tres secciones en orden:

// 1. Declaracion de paquete (obligatorio)
package main

// 2. Imports (opcionales)
import (
	"fmt"
	"math"
)

// 3. Declaraciones (funciones, variables, tipos)
func main() {
	fmt.Println("Pi es:", math.Pi)
}

Reglas importantes:

go run vs go build

ComandoQue haceCuando usarlo
go run main.goCompila y ejecuta en un pasoDesarrollo y pruebas rapidas
go build -o app main.goGenera binario ejecutableProduccion y distribucion
go installCompila e instala en $GOPATH/binHerramientas CLI

GOPATH y Go Modules

GOPATH (legacy)

Antes de Go 1.11, todo el codigo vivia en $GOPATH (por defecto ~/go):

echo $GOPATH
# /home/usuario/go

Go Modules (moderno)

Desde Go 1.11+ (estandar desde 1.16), los modulos reemplazaron GOPATH:

# Crear un nuevo modulo
go mod init github.com/usuario/mi-proyecto

# Esto crea go.mod
// go.mod
module github.com/usuario/mi-proyecto

go 1.22

Comandos esenciales de modulos:

# Descargar dependencias
go mod download

# Limpiar dependencias no usadas
go mod tidy

# Ver dependencias
go list -m all

Herramientas integradas

Go incluye herramientas que en otros lenguajes requieren librerias externas:

# Formatear codigo (estandar unico, sin debates)
go fmt ./...

# Analisis estatico
go vet ./...

# Ejecutar tests
go test ./...

# Ver documentacion
go doc fmt.Println

Ejercicios

  1. Instala Go y verifica la version con go version
  2. Crea un modulo con go mod init y un main.go que imprima tu nombre
  3. Compila el programa con go build y verifica el tamanio del binario con ls -lh

Resumen