Tabs preservam o código e dão liberdade de visualização: cada pessoa escolhe a largura da indentação sem reescrever o arquivo.
Com tabulações, a indentação é um conceito, não um número fixo de espaços. Em editores modernos, cada pessoa ajusta o width (2, 4, 8) conforme ergonomia e acessibilidade, sem poluir o histórico do repositório. Quem tem baixa visão pode ampliar a indentação; quem está em tela pequena pode reduzi‑la — o texto permanece idêntico. Essa separação entre conteúdo e apresentação torna o código mais inclusivo e sustentável.
Tabs economizam caracteres de indentação e, com isso, reduzem armazenamento, tráfego e ruído em patches.
Por nível de bloco, um tab é 1 caractere; quatro espaços são 4 — potencialmente 75% menos caracteres dedicados apenas à indentação. Em bases com muitos blocos, essa diferença se acumula por linha e por commit, encolhendo repositórios e diffs. Em linguagens com estrutura baseada em blocos (p.ex., Go, Python, TypeScript), o ganho escala com a profundidade. Em termos simples: níveis_de_indentação × (N_espaços − 1) caracteres a menos por linha.
Tabs produzem diffs e merges mais estáveis, evitando churn cosmético e conflitos desnecessários.
A largura percebida muda no editor, não no arquivo, então não há commits de “reformatar indentação” quando alguém ajusta preferências. Isso mantém o git blame fiel ao histórico sem ser ofuscado por mudanças de estilo. Revisores concentram-se em lógica e design, não em variações de espaços. O resultado é um fluxo de trabalho mais previsível e colaborativo.
Semântica nítida: tabs para indentação, espaços para alinhamento — prática consolidada por ferramentas maduras.
Usar tab para níveis de bloco e espaço para alinhamento intra‑linha equilibra legibilidade com flexibilidade. Esse padrão é adotado ou suportado por ferramentas e ecossistemas como gofmt (Go), o estilo do kernel Linux e configurações EditorConfig/Prettier, demonstrando sua viabilidade em escala. A coluna visual fica elegante para quem alinha tokens, enquanto o nível de indentação respeita preferências pessoais. No fim, obtém-se consistência sem aprisionar a equipe a um único width absoluto.