Mezery. Protože je snazší udržet konzistenci ve větím projektu. Tabulátor jde v editoru / IDE vždy nastavit na určitý počet mezer. Opačně to prostě nejde.
Kecáte. Tabulátory jdou (z jakéhokoliv důvodu) překonvertovat na mezery, protože tabulátory jsou prostředkem určeným k jediné věci, a to odsazování. Ale mezery budete těžko konvertovat na tabulátory, protože jste jim přiřadila mimo významu oddělovače (a kdoví čeho ještě) i význam odsazovače, který nerozeznáte.
A co uděláte, když vám opticky/ergonomicky nebude vyhovovat velikost odsazení (některým stačí 2 místa, jiní chtějí 6 či 8) natvrdo zakódovaného mezerami? No nic, vizte výše.
Myslela jsem tím, že se dá nastavit vypsání určitého množství mezer po stisknutí tabulátoru. Což je zároveň default ve většině IDE co znám.
Nenadělám nic, no. Stejně jako nenadělám nic, pokud se někdo rozhodne formátovat kód jiným mně nevyhovujícím způsobem. Ano, líbí se mi co odsazení tabulátorem umožňuje, ale ty nevýhody jsou pro mě větší, osobně nemám problém orientovat se v libovolném odsazení (dokud se nějaký psychopat nerozhodne odsazovat o znak, ale to jsem ještě neviděla)
Nefunguje to při zarovnávání zalomených řádků pod sebe:
int function( Type1 param1,
Type2 param2 );
Nefunguje to při zarovnávání, kdy tabulátor nezačíná na začátku řádku:
Type value; AnotherType anotherValue;
Dá se to řešit mícháním tabulátorů a mezer, ale je to dost oser, který se každou chvíli rozbije, když někdo použije jinou velikost kroku, protože někdo někde zaručeně použije tabulátor místo mezery nebo naopak.