Gli spazi devono sempre essere utilizzati, poiché le schede da sole non sono sufficientemente flessibili per molti stili e la combinazione di schede e spazi (quasi) produce sempre un pasticcio assoluto.
Per un esempio di uno stile che generalmente necessita di spazi, prendi in considerazione qualcosa come:
call_some_function(parameter1,
parameter2,
parameter3,
parameter4,
parameter5,
parameter6,
parameter7);
A meno che tu non sia disposto a rinominare tutte le tue funzioni in modo che siano esattamente un multiplo delle dimensioni della scheda (meno una per la parentesi), semplicemente le schede non lo faranno.
Per quanto riguarda la miscelazione di schede e spazi, quasi immediatamente ti imbatti in un grave problema: le schede non vengono costantemente espanse allo stesso modo. Alcuni software considerano una scheda equivalente a un numero specifico di spazi. Un altro software espanderà una scheda modulo un numero specifico di spazi - ad esempio, un elemento dopo una scheda inizierà sempre da 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 giocano male anche con caratteri a larghezza variabile. Questo problema si presenta quando (ad esempio) si desidera allineare i commenti finali:
a.m = 9; // this is the slope
a.i = 4; // this is the intensity
a.x = 1; // this is the x-intercept
Allo stato attuale, tutti si allineano perfettamente. Visto con un carattere a larghezza variabile, tuttavia, le cose si fanno brutte. Con gli spazi, i commenti possono (spesso verranno) leggermente allineati erroneamente. Con le schede, tuttavia, il disallineamento diventa spesso abbastanza radicale:
a.m = 9; // this is the slope
a.i = 4; // this is the intensity
a.x = 1; // this is the x-intercept
Improvvisamente la piccola differenza di larghezza tra 'i' e 'm' o 'x' nel nostro font a larghezza variabile è stata ingrandita di un intero punto di tabulazione.
La linea di fondo è che quasi ogni 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 tue altre domande: altri l'hanno già sottolineato, 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 spacespacespacespace" è irrilevante perché nessuno lo fa comunque. Allo stesso modo con il back-spacing: è difficile immaginare un editor che richiederebbe di premere BkSpcquattro volte per passare a un tab stop precedente, quindi (di nuovo) la domanda è irrilevante.
In conclusione: le schede vanno bene se tu (e solo tu) guarderai mai il tuo codice e lo farai solo con un singolo editor che non riconfigurerai mai (affatto!) Tali condizioni, tuttavia, sono così vicine all'impossibile da imporre che esiste una sola risposta ragionevole: non utilizzare mai le schede.
tab
. Se non riesci a configurarlo nel tuo editor preferito, hai bisogno di un editor migliore.