~/VibeHandbook
PDF gratis

Lenguajes

go.dev

Go

Qué es

Go (Golang) es un lenguaje compilado y de tipado estático creado por Google, diseñado para la simplicidad, las compilaciones rápidas y la concurrencia. Produce un único binario estático — un solo archivo autocontenido que puedes copiar y ejecutar, sin necesidad de instalar nada más. Tiene un conjunto de funcionalidades pequeño y deliberado, y está construido para escribir servicios de red confiables y herramientas de línea de comandos.

Puntos fuertes

  • Compila a un único binario sin dependencias — trivial de desplegar.
  • Concurrencia integrada — como una tienda que abre muchas cajas registradoras para atender a muchos clientes a la vez — mediante goroutines y channels.
  • Compilación rápida y tiempo de ejecución rápido, con recolección de basura (garbage collection).
  • Biblioteca estándar sólida — herramientas integradas como (HyperText Transfer Protocol, protocolo de transferencia de hipertexto) para solicitudes web, (JavaScript Object Notation, notación de objetos de JavaScript) para datos, y criptografía — además de un formateo forzado (gofmt).

Concesiones

  • Deliberadamente minimalista: manejo de errores verboso (if err != nil) y expresividad limitada.
  • Los genéricos llegaron tarde y siguen siendo modestos comparados con otros lenguajes.
  • Menos adecuado para trabajo pesado de ciencia de datos o interfaces de usuario.
  • La simplicidad que favorece la legibilidad puede sentirse repetitiva en bases de código grandes.

Cuándo recurrir a él

Recurre a Go cuando necesites un servicio rápido y autocontenido, una herramienta (Command-Line Interface, interfaz de línea de comandos), o infraestructura de red (proxies, APIs (Application Programming Interfaces, interfaces de programación de aplicaciones), daemons). Brilla donde importan la simplicidad de despliegue, el rendimiento predecible y la concurrencia — por eso gran parte de las herramientas nativas de la nube (Docker, Kubernetes) están escritas en él.

Encaje con vibe coding

Los asistentes de IA se desenvuelven bien con Go precisamente porque el lenguaje es pequeño y sus convenciones son fuertes — normalmente hay una manera obvia de hacer las cosas, así que el código generado tiende a ser convencional y limpio según gofmt. Indica a la IA que maneje los errores de forma explícita en lugar de ignorarlos, que use la biblioteca estándar antes de recurrir a dependencias externas, y que aproveche las goroutines con la cancelación adecuada mediante context para la concurrencia. Pídele que incluya una ruta de módulo go.mod y una función main ejecutable para que puedas usar go run de inmediato y verificar cada parte.

package main

import (
	"fmt"
	"strings"
)

func main() {
	words := strings.Fields("go is fast and simple")
	counts := map[string]int{}
	for _, w := range words {
		counts[w]++
	}
	fmt.Println(counts)
}