Tem gente que gosta de pizza com abacaxi e, incompreensivelmente, tem gente que não. Também tem gente que prefere omelete de batata com cebola e outros bem malucos que gostam sem. E então há o debate final sobre programadores: ou você é a favor de tabulações ou de espaços.
É uma das guerras particulares de desenvolvedores que se junta a outras guerras conhecidas de usuários de distros Linux, como aquela que coloca o vi contra o emacs, ou o GNOME contra o KDE. Porém, como dizemos, isso afeta especialmente os desenvolvedores, que há anos debatem se o recuo (recuo) do código deve ser feito com tabulações ou como espaços.
O problema é que alguns analisadores de código (analisadores) não fornecem suporte adequado para paradas de tabulação, o que pode fazer com que o código falhe quando na verdade não acontece.
Linus Torvalds, cansado desta situação, decidiu publicar um patch para um dos arquivos de configuração Kconfig no qual fiz uma pequena brincadeira: alterou alguns espaços e os substituiu por espaços precisamente para que os analisadores incapazes de detectar aquela situação – que deveriam detectar – produzissem um erro.
A intenção de Linus aqui era óbvia: fazer com que os desenvolvedores desses analisadores começassem a trabalhar e fizessem as alterações necessárias para suportar adequadamente os tabuladores. No passado, Linus provavelmente teria reagido com muito mais força, mas esta forma de agir é muito mais sutil. Como ele mesmo explicou ao publicar o patch:
Não ficou claro qual ferramenta era, mas vamos garantir que seja consertada. Porque se você não pode analisar guias como espaços em branco, você não deveria analisar arquivos Kconfig do kernel.
Na verdade, Torvalds indicou que continuaria adicionando guias aleatoriamente em alguns arquivos Kconfig para continuar insistindo no problema até que essas ferramentas de terceiros – que ele não identifica – corrijam o problema. Porque o fato de no Kconfig existirem certas exceções quanto ao uso de abas não desculpa nada.
E isso não desculpa porque para Linus Torvalds não há argumento válido. As guias são o único método válido de recuo de código.
E ponto.
A eterna guerra santa entre abas e espaços
O ódio e as filias nesta questão vêm de longe. De muito longe. Alguns chamaram esse confronto de ‘Tabs versus Spaces’ de a eterna guerra santa do ano 2000, e a própria documentação de programação do kernel Linux deixa clara a posição de quem desenvolve esse importante pilar tecnológico dos nossos dias:
Exceto em comentários, documentação e exceto no Kconfig, espaços nunca são usados para indentação e o exemplo acima é deliberadamente quebrado.
Então se você é programador e colabora no desenvolvimento do kernel Linux, espaços são basicamente proibidos para recuo —ou recuo, termo estrangeiro que não tem significado aprovado no DRAE no momento— do código.
Em 2007, Linus Torvalds respondeu a outro colaborador de desenvolvimento Linux que estava tentando suavizar o debate. Ele disse que no final você terá que lidar com pessoas que usam espaços em vez de tabulações (geralmente programadores de Windows), mas Linus já deixou clara sua posição.
“Uma das razões pelas quais realmente Eu quero usar guias puras [equivalentes a 8 caracteres] é que faz com que os patches tenham uma aparência melhor”, explicou ele, e alertou sobre o perigo de misturar estilos e combinar recuo com tabulações e espaços. “Se você usar espaços (ou pior, misturar os dois métodos), as coisas f…