Go
O que é
Go (Golang) é uma linguagem compilada e de tipagem estática, criada pelo Google com foco em simplicidade, compilação rápida e concorrência. Ela gera um único binário estático — um arquivo autocontido que você pode copiar e executar, sem precisar instalar mais nada. Tem um conjunto de recursos pequeno e deliberado, e foi construída para escrever serviços de rede confiáveis e ferramentas de linha de comando.
Pontos fortes
- Compila para um único binário sem dependências — trivial de implantar.
- Concorrência embutida — como uma loja que abre vários caixas ao mesmo tempo para atender muitos clientes simultaneamente — usando goroutines e channels.
- Compilação rápida e execução rápida, com coleta de lixo (garbage collection).
- Biblioteca padrão robusta — ferramentas embutidas como (HyperText Transfer Protocol) para requisições web, (JavaScript Object Notation) para dados, e criptografia — além de formatação padronizada e obrigatória (
gofmt).
Trade-offs
- Deliberadamente minimalista: tratamento de erros verboso (
if err != nil) e expressividade limitada. - Generics chegaram tarde e ainda são modestos se comparados a outras linguagens.
- Menos adequada para ciência de dados pesada ou trabalho de interface (UI).
- A simplicidade que favorece a legibilidade pode parecer repetitiva em bases de código grandes.
Quando usar
Recorra a Go quando precisar de um serviço de rápido e autocontido, uma ferramenta de (Command-Line Interface — interface de linha de comando), ou infraestrutura de rede (proxies, APIs (Application Programming Interfaces — interfaces de programação de aplicações), daemons). Ela se destaca onde simplicidade de implantação, desempenho previsível e concorrência importam — motivo pelo qual tanta ferramenta cloud-native (Docker, Kubernetes) é escrita nela.
Encaixe no vibe coding
Assistentes de IA se saem bem com Go justamente porque a linguagem é pequena e os idiomas são fortes — geralmente há uma maneira óbvia de fazer as coisas, então o código gerado tende a ser convencional e limpo segundo o gofmt. Instrua a IA a tratar erros explicitamente em vez de ignorá-los, a usar a biblioteca padrão antes de recorrer a dependências externas, e a aproveitar goroutines com cancelamento adequado via context para concorrência. Peça que ela inclua um caminho de módulo go.mod e uma função main executável, para que você possa rodar com go run imediatamente e 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)
}