Saiu no Hacker News a provocação 'If AI writes your code, why use Python?' (919 pontos, 252 comentários). A comunidade rejeitou o raciocínio mas expôs a verdade: a IA derrubou o custo de escrever em qualquer linguagem, então o critério de escolha mudou. Não é mais facilidade de escrever — é quanto a linguagem restringe a IA em tempo de compilação e quão fácil é o humano revisar e operar. Rust domina o primeiro eixo e perde no segundo. Python domina o segundo e perde no primeiro. Go pontua alto nos dois ao mesmo tempo.
Os dois argumentos históricos do Python — 'é fácil de escrever' e 'tem biblioteca pra tudo' — perderam força: a IA escreve Rust tão rápido quanto Python e porta bibliotecas de uma linguagem para outra quase de graça. O que não mudou foi a sua responsabilidade. Você não digita mais o código, mas cada diff entra na sua fila de revisão, e quando o sistema quebra em produção é você quem entra no terminal.
'LLMs prosperam na restrição e se afogam na liberdade.' Quanto mais o compilador estreita o espaço de soluções, mais provável que o que sai funcione. Tipagem estática vira mecanismo de alinhamento: o erro de compilação corrige o agente antes do bug chegar ao runtime.
O comentário mais afiado da thread: 'a legibilidade do Python não é vantagem na escrita; é vantagem na revisão. Cada diff vai pra minha fila — esses 10% são a parte crucial.' Você lê muito mais código gerado do que escreve.
O erro do artigo original foi tratar os eixos como se um anulasse o outro. Não anula. A linguagem certa é a que maximiza os dois ao mesmo tempo — e performance bruta raramente é o gargalo real: a página é lenta por causa da linguagem ou das 16 chamadas a serviços externos?
Vibe coding 'fair weather' funciona até o app ser exposto a uso sério. Vai haver o O(n²) escondido que trava com 1000 usuários, e a IA entra em loop tentando consertar. Aí é preciso um humano que entenda a linguagem — o que torna a escolha relevante de novo.
Go não é a linguagem com o type-system mais forte (Rust ganha aí), nem a com mais dados de treino (Python ganha). É a que equilibra restrição da IA e operabilidade humana — exatamente o que importa quando a IA escreve e o humano revisa.
Estaticamente tipado: o agente não passa string onde se espera int, não esquece retorno. Não é o borrow-checker do Rust, mas é guard-rail real com uma vantagem que o Rust não tem: o compilador é rápido. O loop 'IA escreve → compila → corrige' roda em segundos, então o agente itera mais e melhor.
Gramática pequena e uma única forma idiomática. Você lê uma função gerada e entende em segundos, sem decorators mágicos, sem três níveis de metaprogramação, sem Arc<Mutex<...>> aninhado. A verbosidade do 'if err != nil' é boilerplate que se skimma, não se decifra.
Como só existe um jeito de formatar e quase um jeito idiomático de resolver cada coisa, o agente converge para a convenção sozinho — não inventa estilo a cada arquivo. O codebase fica coeso mesmo gerado por IA em sessões diferentes, e a revisão fica previsível.
Agentes adoram instalar pacotes, e cada install roda scripts de terceiros e amplia a superfície de ataque. Com a stdlib batteries-included do Go (HTTP, TLS, templates, crypto, testes), a IA simplesmente não precisa puxar dependências. Menos deps, menos footgun, menos auditoria. Some o binário estático: deploy trivial.
O Stickybit — este site — roda em produção, foi construído majoritariamente com IA, e tem UMA biblioteca de terceiros (markdown) mais o TLS automático do ecossistema oficial. A stdlib cobre o resto. go.sum de 8 linhas: superfície de supply-chain quase nula.
O artefato é um binário estático único (~12 MB). Sem imagem de 800 MB, sem node_modules, sem 'funciona na minha máquina'. A IA gera, go build, sobe.
~4.400 linhas de Go, 52 funções, navegáveis por tipos explícitos e gofmt consistente. O tipo de estrutura que a IA produz e que só é sustentável porque o Go é legível. (Vale refatorar em pacotes — mas dá pra conviver enquanto cresce.)
Compilação em segundos, não dezenas de segundos. Quando o feedback é barato, o agente itera mais — e o gasto de tokens corrigindo erros de compilação fica baixo, ao contrário do ciclo lento e caro do Rust.
O risco número um do Go com IA: data races que nem o agente nem o revisor percebem. Mitigação não é opcional — go test -race no CI e ceticismo em todo diff que mexe em estado compartilhado entre goroutines.
Como o type-system é mais fraco que o do Rust, bugs de lógica passam pela compilação. A contramedida é deslocar a verificação para os testes — e o loop rápido do Go te deixa bancar muitos. Trade consciente: rigidez do Rust por velocidade e legibilidade.
A IA pode escrever em qualquer linguagem. Você ainda tem que ler, confiar e manter o que ela escreveu. Ajudamos times a escolher o stack certo e a montar o processo de revisão, tooling e guard-rails para a era dos agentes.