CUE vs YAML: Configuração Tipada vs YAML Simples
YAML é um formato de dados simples que é universal, mas não tem tipos nem validação; CUE é uma linguagem que produz e valida dados com restrições. YAML é mais simples; CUE captura erros que o YAML não consegue.
Isto não é uma luta equivalente: YAML é um formato de serialização, CUE é uma linguagem de configuração que pode emitir YAML. As equipes recorrem ao CUE quando o YAML puro se torna propenso a erros em escala. Aqui está a comparação honesta de quando cada um é a ferramenta certa.
| CUE | YAML | |
|---|---|---|
| O que é | Linguagem de configuração + validador | Formato de serialização de dados |
| Tipos/restrições | De primeira classe, impostos | Nenhum (strings, números, listas, maps) |
| Reutilização/DRY | Imports, definições, unificação | Anchors/aliases (limitado) |
| Validação | Embutida | Externa (schemas, linters) |
| Ubiquidade | Crescendo | Em toda parte |
| Melhor uso | Configuração grande e propensa a erros | Configuração pequena e simples |
Quando o YAML simples é suficiente
Para um punhado de arquivos, YAML é a escolha certa: todos leem, toda ferramenta consome, e não há nada a aprender. Suas lacunas (sem tipos, fácil de indentar errado, anchors são desajeitados) só incomodam em escala. Não adicione uma linguagem de configuração a um projeto pequeno só porque você pode.
Quando o CUE compensa
Quando você tem muitos arquivos YAML quase idênticos, overrides específicos de ambiente e erros recorrentes de copiar e colar, o CUE justifica seu valor: ele impõe schemas, remove duplicação via definições e falha rápido em valores inválidos. Você ainda emite YAML para as ferramentas que precisam dele, mas escreve e valida em CUE.
Em CI
Mesmo que você mantenha o YAML, adicione um passo de validação (verificação de schema ou linter). Se adotar CUE, rode cue vet/cue export no CI para que configuração ruim seja rejeitada antes do deploy. O objetivo é o mesmo: nenhuma configuração inválida chega à produção.
O veredito
Mantenha o YAML simples para configuração pequena e simples, onde sua ubiquidade vence; adote CUE quando o volume de configuração e as exigências de correção ultrapassam o YAML editado à mão. CUE ainda pode gerar YAML, então ele complementa em vez de substituir totalmente.