Gli spazi dovrebbero sempre essere usati, perché le schede da sole non sono sufficientemente flessibili per molti stili, e la combinazione di linguette e spazi (quasi) produce sempre un disordine assoluto.
Per un esempio di uno stile che generalmente richiede spazi, considera qualcosa come:
call_some_function(parameter1,
parameter2,
parameter3,
parameter4,
parameter5,
parameter6,
parameter7);
A meno che tu non voglia rinominare tutte le tue funzioni in un multiplo esatto delle schede di dimensione (meno una per le parentesi), semplicemente non lo farai.
Per quanto riguarda la combinazione di tabulazioni e spazi, ti imbatti quasi subito in un problema serio: le schede non vengono espanse in modo coerente allo stesso modo. Alcuni software considerano una scheda equivalente a un numero specifico di spazi. Altri software espandono una scheda modulo un numero specifico di spazi - ad esempio, un elemento dopo che una scheda inizia sempre con un numero di colonna che è un multiplo di (diciamo) 8.
Anche se puoi assicurarti che gli spazi non si mescolino con le tue schede, hai ancora un problema: le schede funzionano male con i caratteri a larghezza variabile. Questo problema si verifica quando (ad esempio) si desidera che i commenti finali siano allineati:
a.m = 9; // this is the slope
a.i = 4; // this is the intensity
a.x = 1; // this is the x-intercept
Come stanno adesso, quelli si allineano perfettamente. Visto con un font a larghezza variabile, tuttavia, le cose diventano brutte. Con spazi, i commenti possono (spesso lo faranno) un po 'disallineati. Con le schede, tuttavia, il disallineamento diventa spesso piuttosto radicale:
a.m = 9; // this is the slope
a.i = 4; // this is the intensity
a.x = 1; // this is the x-intercept
All'improvviso la piccola differenza di larghezza tra "i" e "m" o "x" nel nostro carattere a larghezza variabile è stata ingrandita a un intero punto di tabulazione.
La linea di fondo è che quasi qualsiasi cambiamento nel modo in cui visualizzi il codice con le schede, non importa quanto apparentemente banale, può e di solito produrrà un pasticcio illeggibile.
Per rispondere alle altre domande: altri l'hanno già fatto notare, ma non riesco a immaginare nessuno in un editor di programmazione (o molto altro) che usi effettivamente la barra spaziatrice per inserire gli spazi, quindi la tua domanda su: " digitare spazio spazio spazio spazio "è irrilevante perché nessuno lo fa comunque. Allo stesso modo con back-spacing: è difficile immaginare un editor che richieda di premere BkSpc quattro volte per andare a un punto di tabulazione precedente, quindi (di nuovo) la domanda è irrilevante.
Bottom line: le schede vanno bene se tu (e solo tu) mai guardi il tuo codice, e lo fai sempre con un solo editor che mai riconfigurare (affatto!) Tali condizioni, tuttavia, sono così vicine all'impossibilità di far rispettare che esiste una sola risposta ragionevole: non usare mai tabulazioni.