I tab lasciali perdere. Purtroppo Python li consente, ma francamente io avrei obbligato a usare soltanto gli spazi per l'indentazione. Avere la possibilità di usarli entrambi genera confusione.
Perché ognuno i tab li considera della dimensione che vuole. Io imposto 1 tab = 2 spazi, molti comune è 1 tab = 4 spazi, poi ci sono i casi da manicomio che impostano 1 tab = 8 spazi.
Recentemente mi sono convertito anche io agli spazi, in ufficio i sorgenti sono spesso illeggibili perchè ognuno ha impostato emacs o vim in maniera diversa, e si possono vedere cose allucinanti :S
pero', a prescindere, non ho ancora capito in concreto DOVE sia meglio usare gli spazi per segnalare la profodita' di statement rispetto all'utilizzo dei block-key espliciti { "begin,"end",'{','}' }.
mi sembra nettamente piu' complesso dal lexer al parser, al lato implementativo!
e all'utilizzo pratico, da utente, bah ... mi sembra solo piu' fiquo usare gli spazi, ma solo perche' fai un minimo di piu' ordine mentale apparente, voglio dire, se e' un problema estetico, l'ho gia' detto: una volta che uno streamin di brutali char_t uno dietro l'altro e' diventato un syntax-tree ci si puo' fare quello che si vuole, compresa l'operazione inversa syntax-tree to streamout, oppure compreso l'indentazione automatica in tempo reale mentre scrivi codice sull'editor (lo fa Adamulti di Green Hills , per esempio)
in post-processo, cioe' DOPO che hai scritto un sorgente (e magari anche tutto sgangherato) e' quello che fanno i beauty-maker, anche quelli bovini come dev-util/uncrustify.
Citazione da: cdimauro - 23 ſettembre 2013, 07:23:06Perché ognuno i tab li considera della dimensione che vuole. Io imposto 1 tab = 2 spazi, molti comune è 1 tab = 4 spazi, poi ci sono i casi da manicomio che impostano 1 tab = 8 spazi.Quindi non ci sono problemi di "funzionamento", ma solo estetici.
Citazione da: fulvio - 23 ſettembre 2013, 11:58:11Recentemente mi sono convertito anche io agli spazi, in ufficio i sorgenti sono spesso illeggibili perchè ognuno ha impostato emacs o vim in maniera diversa, e si possono vedere cose allucinanti :SPerò, se poi ognuno configura l'IDE preferito per inserire tab=X spazi, con X il tipo di visualizzazione precedente, lo stesso si ottengono sorgenti scritti da persone diverse indentati diversamente.
Almeno, in caso di non formattazioni strambe (es. tabelle, ASCII art etc. che andrebbero appunto fatte con spazi), trovo i tab migliori proprio perchè ogni programmatore può scegliere la visualizzazione che preferisce, e in generale (i.e. per la maggioranza del codice) i risultati non cambiano.Il peggio invece è quando si usano sia spazi che tab nell'indentazione del codice,
ad esempio come nei sorgenti di Minix 3: per la prima colonna di indentazione usano 2 spazi, per le seconda un tab (che per loro equivale a 8 spazi), poi tab e 2 spazi...Ma forse loro programmano ancora sui 5150 col video a 80 colonne.
Magari lo facevano per risparmiare spazio. All'epoca si contavano anche i singoli byte,