Escolhendo Sua Stack: Linguagens em Perspectiva
Quando você direciona uma IA para construir software, a linguagem que você escolhe ainda importa — e muito. A IA escreve o código, mas você vive com as consequências: com que velocidade você entrega, quão fácil é fazer o , com que frequência você esbarra numa parede. A boa notícia é que você não precisa dominar nenhuma dessas linguagens. Você precisa saber o suficiente para fazer uma escolha sensata e para reconhecer quando a IA está te levando para um caminho doloroso.
Este capítulo percorre as linguagens que valem a pena conhecer, no que cada uma é genuinamente boa, onde ela morde, e — crucial para vibe coding — quão bem os assistentes de IA lidam com ela. Vamos terminar com um guia simples de escolha por objetivo.
Uma observação antes de começarmos: os assistentes de IA são muito melhores em linguagens populares com montanhas de código público do que em linguagens de nicho. Esse não é um efeito pequeno. É frequentemente o único maior fator em se o seu projeto vai bem ou não. Popularidade é um recurso. Quando uma linguagem e seus principais frameworks aparecem milhões de vezes em repositórios públicos, a IA já viu todo padrão comum, todo erro típico e toda correção idiomática. Quando não aparecem, você paga por essa escassez em tentativas fracassadas e bobagens ditas com confiança.
Antes dos nomes das linguagens, uma imagem que vale a pena guardar na cabeça: o código que você escreve nunca é o que a máquina de fato executa. Algo no meio transforma seu texto em software em execução — ou um compilador (traduz tudo antecipadamente em um arquivo que você executa) ou um interpretador (lê e executa linha por linha). A linguagem que você escolhe decide em qual caminho você está.
YOU THE MIDDLE THE MACHINE
┌────────┐ ┌──────────┐
│ source │──┬──▶ COMPILER ──▶ binary file ──────▶ │ runs on │
│ code │ │ (Go, Rust) (one file) │ CPU │
│ (text) │ │ │ │
└────────┘ └──▶ INTERPRETER ──reads line ──────▶ │ prints │
(Python, JS) by line │ output │
└──────────┘
compiled = translate first, run later
interpreted = translate while running
