¿Tabuladores o espacios?

Es una discusión recurrente sobre si se deben usar tabuladores o espacios para organizar (indentar) el código de los programas.

Personalmente siempre me han gustado más los tabuladores, pero hay ocasiones en que un tabulador (8 espacios) puede resultar excesivo. La mayoría de los editores de texto permiten “redefinir” la anchura del tabulador a, digamos, 4 espacios, pero la opción de que la anchura de la indentación sea variable me gusta menos todavía.

Estaba en estas disquisiciones cuando he encontrado un comentario antiguo en un foro de Java [1] a favor de usar espacios en vez de tabuladores que me parece muy acertado. Lo reproduzco aquí.

[1] https://coderanch.com/t/392682/java/tabs-spaces

Indents are not Tabs and Tabs are not Indents.
Indents in code should be done using spaces. Some style guides say 4, some 2, and I even know some who insist on 3. But the “implementation of an indent” uses some number of the SPACE character (ASCII 0x20 or “\u0020″ or just ” “).
A Tab is a single character (known as “HT” or ASCII 0x09 or “\u0009” or “\t”). Often when that character is displayed, it is rendered as some ammount of blank area. It has traditionally been rendered as the equivalent of 8 SPACE characters. More often, it is rendered as “enough SPACE characters to reach the next column that is a multiple of 8 (or N) spaces”. And sometimes it is some sort of arrow-like character.
Because of the ambiguity in rendering, these Tab characters are worthless for code indention.
However, there is a nice big key labeled “Tab” on your keyboard. It would be a shame to let a nice key like that go to waste, especially since it is easier to type than lots of spaces. For this reason, most code editors interpret your pressing of the Tab key as some sort of “Indent” signal. Good editors will take that tab and convert it into the correct number of initial spaces to make a proper indent.
PS –
Note that a Tab can also be used as a data delimiter (as in something to go between columns of a spreadsheet-to-text output or something.
Tab is also a diet drink marketed by the Coca-Cola company. You might risk copyright/patent violations if you release code containing lots of Tab.
US$ 0.02,