Schede e spazi: qual è il carattere di rientro corretto per ogni cosa, in ogni situazione, in assoluto? [chiuso]


84

Gli standard di codifica per il codice ospitato in drupal.org suggeriscono di usare due spazi per indentare il codice; altri siti suggeriscono di utilizzare le schede per indentare il codice.

Qual è il carattere di rientro corretto per tutto e in ogni situazione? Spiega la risposta che dai.



13
IDE predefinito FTW - basta premere il tasto Tab e vedere cosa succede
user281377

Qualunque cosa tu scelga, deve essere utilizzata da tutto il team, ma non quando si utilizzano le schede degli altri spazi.
Discepolo

1
Ho provato a modificarlo per correggere l'implicazione che tab / spazi sono l'unico modo per indentare il codice. La modifica è stata rimossa, ma spero che questo commento rimanga: invece dei caratteri di rientro, perché non utilizzare il margine sinistro? - questo può essere completamente automatizzato dall'editore e i word processor lo fanno da decenni.
pgfearo,

4
Non credo proprio che ci dovrebbe essere una risposta "accettata" qui. Il fatto che la risposta con meno voti sia in realtà la prima è la dimostrazione di ciò: perché chi chiede dovrebbe avere un potere speciale (cioè essere in grado di dare la prima risposta preferita) solo perché ha posto la domanda?
Dean Harding,

Risposte:


129

spazi

Una scheda può essere un numero diverso di colonne a seconda dell'ambiente, ma uno spazio è sempre una colonna.

In termini di quanti spazi (o schede) costituisce rientro, è più importante essere coerenti in tutto il codice che utilizzare qualsiasi valore di arresto di tabulazione specifico.


42
Il tuo secondo paragrafo è sbagliato; la risposta è 4!
Daenyth,

5
@Daenyth - forse se stai usando un linguaggio a parentesi graffa. La maggior parte di Pascal / Delphi usa 2.
Gerry,

72
Perché dovrei essere mandato ai tuoi 2 o 4 SPAZI di rientro quando un TAB può essere impostato in modo dinamico e indicare un singolo livello di rientro?
Jé Queue,

3
@MGOwen L'argomento del tempo di download per la codifica di siti Web è oggi facilmente risolvibile utilizzando la minimizzazione dei sorgenti su css / javascript e la rimozione di spazi bianchi su HTML. Vedi mod_pagespeed per vedere cosa intendo.
Evan Plaice,

42
"Una scheda potrebbe essere un numero diverso di colonne a seconda del tuo ambiente" Sì, questo è esattamente il vantaggio. Tutti possono dargli i propri gusti ed essere felici.
Andrea,

249

Tabs

Ora, naturalmente, la coerenza conta più di una delle due e un buon IDE rende le differenze trascurabili. Detto questo, il punto di questo filo è essere una guerra santa, quindi:

Preferisco le schede:

  • Sono un personaggio specificamente pensato per il rientro
  • Consentono agli sviluppatori con preferenze diverse nella dimensione del rientro di cambiare l'aspetto del codice senza cambiare il codice (separazione dei dati e presentazione per la proverbiale vittoria!)
  • È impossibile indentare a metà qualcosa con le schede. Quindi, quando copi il codice da un sito Web che utilizzava 3 spazi nel tuo file rientrato di 4 spazi, non devi fare i conti con un disallineamento.

12
Che ne dici di copiare quel codice rientrato di 3 spazi nel tuo file rientrato in tab, che hai impostato le tue schede su 3 spazi? Quando invii il tuo codice ai tuoi compatrioti si chiedono perché quella funzione abbia un rientro così grave!
Wayne Werner,

27
Le schede non sono originariamente pensate per il rientro, sono pensate per la tabulazione e fanno un lavoro terribile ...
Timwi,

14
@Timwi: Wikipedia sembra dire che sono pensati per spostare il cursore sul successivo di una serie di colonne fisse. Non sembra che la tabulazione sia stata la funzione principale. Inoltre, mi riferivo all'era post-macchina da scrivere.
Fishtoaster,

40
Inoltre, molti programmatori impiegano molto tempo a scrivere html, css, ecc. Il fatto che un file con 4 spazi anziché le schede più grandi del 5-15% sia effettivamente significativo. Esempio: questa pagina in cui ti trovi ora carica almeno il 10% più lentamente di quanto dovrebbe avere perché il team SE ha utilizzato gli spazi . Verifica tu stesso.
MGOwen,

23
Un altro vantaggio di questo approccio: meno pressioni dei tasti quando si usano i tasti freccia per la navigazione da sinistra a destra.
Nicole,

117

Usa le schede per rientrare all'inizio della riga, una scheda per livello di rientro e lascia che tutti scelgano quanto vogliono che sia.

Usa gli spazi se stai allineando i caratteri all'interno di una linea, quindi si allineano sempre indipendentemente dalle dimensioni della scheda.

E trova e prendi a pugni tutti i primi autori di software che hanno lasciato che questa cosa stupida diventasse un problema in primo luogo.
(Seriamente, perché è anche qualcosa di cui si discute? Successivamente mi dirai che vuoi anche usare più personaggi per le interruzioni di riga!)


33
Sì Sì Sì Sì Sì. Cento per cento sì. Ciò consente a tutti di impostare la propria larghezza di scheda preservando la formattazione tabulare. Se sei preoccupato di rimanere all'interno di 80 colonne (come probabilmente dovresti essere!), Scegli semplicemente una dimensione di scheda massima prevista arbitraria (come 4) e mantieni i margini per le schede di quella larghezza. Onestamente, è così difficile?
Jon Purdy,

Sì, ma non utilizzare gli spazi per allinearsi all'interno di una linea. I tuoi colleghi potrebbero usare un carattere proporzionale in modo che la tua arte ASCII sembrerà strana sui loro schermi.
paperjam,

3
Questa è l'unica risposta corretta qui
J.Ashworth,

76

Tabs

  • consentire agli errori di essere più evidenti , è fastidioso gestire micro agli spazi.
  • sono coerenti , vengono utilizzati solo per il rientro, a meno che non si stia commentando in modo errato.
  • sono personalizzabili , puoi specificare nelle opzioni dell'editor quanto sono larghe.
  • sono più produttivi , perché digitare 4 spazi quando è possibile premere 1 scheda.
  • prendere meno dimensioni di più spazi.
  • occupare più spazio di uno spazio.
  • impiegare meno tempo per passare .
  • tendono a funzionare meglio negli IDE.

Gli spazi devono essere utilizzati laddove le schede sono completamente inutili.

Anche per allineare parametri e commenti, le schede funzionano ancora meglio .


24
wrt "più produttivo", personalmente premo TAB e lascio che l'IDE faccia la conversione per il numero appropriato di caratteri spaziali da introdurre. Forse è necessario aggiornare: p?
Matthieu M.

3
-1: errori più evidenti: non vero; consistente: difficilmente personalizzabile: sì, ma è anche svantaggio allo stesso tempo; più produttivo: non è vero, praticamente tutti gli id ​​possono convertire le schede in spazi; meno dimensioni: sì, ma pratico? no; meno tempo: no con IDE ragionevole; tendono a funzionare meglio: per niente se usi più ambienti e strumenti
MaR

@MaR: errori evidenti sono veri, la larghezza di una scheda è maggiore. Inoltre ... Python! Le schede sono coerenti in quanto una singola scheda è un rientro, mentre in caso contrario è necessario definire quanti spazi utilizzare per un rientro. La personalizzazione è un vantaggio. In primo luogo stai usando le schede, quindi è più produttivo. Sembra che non puoi nemmeno dare un buon ragionamento sul perché non sia pratico, gli odiatori odieranno ...;)
Tamara Wijsman,

@TomWij: in che modo la scheda è maggiore del numero equivalente di spazi? Python è praticamente l'unico linguaggio che ha lo spazio giusto per usare le schede in modo sicuro (ma comunque - offre solo un piccolo vantaggio rispetto a "inserire spazi"). Prova anche altre lingue, ambienti legacy, differenze / fusioni, terminali, scc per capire perché le schede sono ancora "ideali" utopiche.
MaR,

@MaR: dove ho indicato "numero equivalente di spazi"? Ho provato tutti quelli, le schede funzionano perfettamente in essi!
Tamara Wijsman,

41

Tutti gli argomenti per le schede sono grandi in teoria. Ma...

In teoria, pratica e teoria sono le stesse. In pratica, non lo sono.

Sì, con le schede puoi decidere il tuo livello di rientro. E sì, puoi usare una combinazione di schede e spazi per allineare le cose. E in un mondo ideale lo farebbe

In realtà, non è possibile vedere la differenza tra spazi e tab, sembrano sempre confusi quando si sposta il codice in giro e visualizzare il codice in un altro programma che ha le schede impostate su 8 colonne è un fastidio.

Usavo le schede. Quindi ho iniziato a lavorare come parte di un team e condividere codice. Sono diventato rapidamente un sostenitore degli spazi. Quindi, mentre posso simpatizzare con l'utopia delle schede, non riesco a immaginare di non usare gli spazi.


6
puoi ottenere un editor come Kate che presenta le schede con un carattere "fantasma" - Posso facilmente vedere le schede contro gli spazi durante la codifica.
HorusKol

8
Ogni editor ha un'opzione "mostra spazi bianchi" ora e Visual Studio ha un'opzione 'tabify'
Chris S

2
Buona discussione. Questo è il motivo per cui ho rinunciato a cercare di convincere le persone che le schede sono più logiche. Perfino i programmatori che dovrebbero essere abituati al pensiero astratto sembrano confondere schede e spazi ("se sembrano quattro spazi, allora devono essere quattro spazi!"). L'unghia nella bara per me era che sembrava impossibile configurare Emacs per rientrare solo con le schede.
Martin Vilcans,

3
+1 L'utopia della scheda è eccezionale, ma ogni volta che ho spostato il codice tra editor con diverse larghezze di scheda, il codice è stato incasinato e disallineato. È troppo facile fare silenziosamente la cosa sbagliata con le schede.
Mankarse,

Usavo anche le schede, ma avevo dei problemi con alcuni IDE che non potevano inserire spazi per le linee di continuazione e odiavo sostituire tutte quelle schede inserite automaticamente con spazi (Visual Studio era uno di questi). Quindi mi sono semplicemente attaccato agli spazi. Inoltre, gli spazi consentono di utilizzare rientri di media grandezza per cose come public:nelle dichiarazioni di classe C ++ in modo che appaiano più belli (specialmente con le classi nidificate).
szx

31

Alcune opinioni rilevanti che potrebbero essere di interesse:


105
Solo perché sei famoso non ti rende corretto.
Jé Queue,

@Xepoch: hai letto la loro logica :)?
Matthieu M.

5
@Matthieu M., sì, ho letto ciascuno, ma non sono ancora d'accordo. Neanche a me piacciono le olive ma non mi sbaglio perché gli altri lo fanno. Trovo ridicolo che le persone non usino la scheda per il rientro, ma è per questo che le chiamano CS guerre sante ...
Jé Queue,

2
@Xepoch: sì, suppongo che tutti abbiano diritto alla propria opinione :) Penso però che Guido abbia sottolineato il problema principale: mescolare schede e spazi è male, perché entrambi appaiono come "spazi vuoti" per l'utente.
Matthieu M.,

3
@Fishtoaster: quando dici che Joel dice spazi, il link non dovrebbe essere una vera citazione di Joel? Il link va semplicemente al forum JoelOnSoftware dove alcuni ppl (molto probabilmente non parlano per Joel) discutono di tabulazioni vs spazi.
Andreas Magnusson,


20

I. assolutamente. odiare. 4. spazi.

Perché? Soprattutto perché sono stanco di navigare il mio codice con una tastiera e di dover premere costantemente left left left leftper superare un rientro. Questo è nato dalle prime versioni di Notepad ++ e persino da un semplice blocco note di Windows in cui non esisteva un pulsante di formattazione. Ho avuto così tanti problemi quando le persone avrebbero usato solo 3 quando ne avevo usati 4 ovunque, tra le altre cose.

L'altro motivo è che il carattere di tabulazione esiste specificamente per il rientro e solo successivamente è stato adottato per la navigazione. Perché lo facciamo space space space spacequando un semplice tabavrebbe funzionato? Perché gli IDE dovrebbero avere a che fare con il codice spaziato 2-5 e formattare correttamente quando una semplice scheda e un'opzione di preferenza funzionerebbero?

Purtroppo sono la minoranza.


31
Sei inefficiente nella navigazione del codice della tastiera. È necessario utilizzare CTRL + SINISTRA e CTRL + DESTRA per saltare spazi bianchi e token. Quindi il rientro non avrebbe importanza.
Wizard79,

7
Da dove viene questo malinteso che "esistono schede specifiche per l'indentazione"? Le schede sono denominate schede (tabulatori) perché sono state inventate per tabulazione, non per rientro , e svolgono un lavoro terribile in entrambi.
Timwi,

7
@Lorenzo: sei inefficiente nella navigazione del codice della tastiera. Dovresti usare we b(o ee ge) per saltare spazi bianchi e token: P
R. Martinho Fernandes,

6
Per motivi di diabolica difesa: non infliggere codice mal formattato agli editor che consideri inferiori. Usa le schede.
Jon Purdy,

11
@Timwi: scusate il necro, ma il tasto tab del computer NON è stato inventato per la tabulazione. La versione di TYPEWRITER di quel tasto era, ma quando le tastiere si sono evolute per l'uso con i computer, il tasto tab era usato per indentare più della tabulazione, e il termine "tab" era diventato sinonimo di rientro. Le schede per COMPUTERS devono essere rientrate ed è solo per convenzione che il nome della chiave corrisponde a quello della macchina da scrivere. Il tuo argomento è simile all'affermazione che la chiave di ritorno del computer era intesa per iniziare una nuova riga e spostare il cursore all'estrema sinistra, perché era quello che
serviva

12

Personalmente mi piace usare le schede in tutto, poiché ogni sviluppatore può controllare la quantità di rientro per scheda. In questo modo ottieni flessibilità di visualizzazione.

Detto questo, di solito imito qualsiasi stile di codifica sia nel file per iniziare (dal momento che passo molto tempo a fare lavori di manutenzione).


3
Ciò si interrompe non appena si avvia il rientro per qualcosa di diverso dalla nidificazione delle istruzioni. Ad esempio, se si desidera allineare gli argomenti della funzione sulla stessa colonna, uno per riga. È possibile mescolando schede e spazi ma molto noioso.
Finnw,

2
Non è affatto noioso, dal momento che significa che puoi tab per la maggior parte del percorso lì e quindi usare solo un paio di spazi, piuttosto che dover digitare dozzine di spazi solo per arrivare alla colonna di destra.
Jordan Reiter,

1
@finnw supponi che tutti stiano usando un carattere a spaziatura fissa - nel 2012, un numero significativo di sviluppatori usa proporzionale. Se hai caratteri non bianchi alla sinistra del tuo primo argomento, non c'è modo di garantire che gli argomenti nelle righe successive siano allineati per tutti.
paperjam,

Non hai mai provato a scrivere HAML, vero.
alt

2
Odio dirlo, ma non riesco a immaginare di programmare con un carattere a larghezza variabile. La pura e semplice ingiustizia di questo nano standard di rinforzo, tabulazioni vs spazi, tutto ... sto solo invecchiando? (Cosa succede quando ricevi un messaggio di errore con una riga e un numero di colonna?)
lunchmeat317

10

Non penso che esista un rientro adeguato (almeno non senza una guerra minore).

Personalmente mi piacciono quattro spazi. Mi permettono di leggere il codice molto più velocemente e sembrano uguali in tutti gli editor, anche in Vi.


9
vi (o meglio vim) è uno dei migliori editor per lavorare con le schede, oltre ad essere in grado di impostare la larghezza delle schede e di espandersi automaticamente negli spazi (come la maggior parte degli editor può) hai anche l' softtabstopopzione e i comandi retabe retab!.
Finnw,

I bambini morirebbero davvero se dicessimo solo 4 spazi, ovunque, sempre, nessuna scelta - e andassimo avanti?
MGOwen,

2
Quattro spazi non sembrano uguali dappertutto. Sempre più programmatori scelgono font proporzionali nel loro IDE per un'esperienza di codifica più piacevole e produttiva. Quattro spazi possono sembrare un trattino piuttosto piccolo in queste situazioni.
paperjam,

8

Spazi, perché quando allini i commenti a destra del codice, o elenchi di parametri di funzione, espressioni multilinea complesse o cose di quella natura, vuoi che il tuo bel lavoro appaia adatto a tutti . Se si utilizzano le schede e si consente alle persone di impostare le proprie schede in modo diverso, interromperanno l'allineamento per tutti tranne i casi più semplici di rientro del codice.

Inoltre, è palesemente ovvio che tutti nel mondo dovrebbero usare vim, il che rende banale il rientro, il rientro e la navigazione attraverso i "punti di tabulazione" anche nei file con rientro spaziale.


Questa è davvero una buona caratteristica di molti editor: la capacità di passare rapidamente attraverso tumuli e cumuli di spazi.
Christian Mann,

18
Sembra che tu stia disegnando arte ASCII piuttosto che scrivere codice.
rmac,

3
Vorrei aggiungere: le schede non devono essere utilizzate per l'allineamento. Se sei un utente di tabulazione e desideri allinearti, devi prima digitare la quantità corretta di schede per il rientro e POI la quantità corretta di spazi per l'allineamento. Solo allora vedrai il codice in formato tab su tutti gli utenti e gli editor.
MaR

6

Le schede sono la scelta naturale e ortodossa, poiché sono per definizione utilizzate per il rientro.

Sfortunatamente, le schede sono implementate in modo non uniforme, quindi l'unica soluzione del mondo reale è di 4 spazi.


8
Da quando le schede (tabulatori) vengono utilizzate per l'indentazione "per definizione"? Per loro stessa definizione sono stati inventati per la tabulazione (anche se in questo fanno un lavoro terribile).
Timwi,

2
Tecnicamente, la chiave di ritorno è stata inventata per spostare la testa della macchina da scrivere nella parte anteriore della linea, mentre il passaggio alla riga successiva è stato eseguito ruotando il rullo. In seguito, anche la chiave di ritorno farà avanzare automaticamente anche il rullo. Tuttavia, non si vede che le persone si bloccano tutte sul tasto Invio / Invio. Il tasto tab è stato chiaramente aggiunto ai computer per eseguire il rientro. È un analogo digitale del tab stop, che avevo sulla mia vecchia macchina da scrivere non elettrica. Le tabulazioni potrebbero essere impostate per spostare il rullo in qualsiasi posizione scelta, quasi identica al ruolo corrente del tasto tabulazione nel rientro.
Jordan Reiter,

@JordanReiter RE: "Non vedi le persone rimanere bloccate sul tasto Invio / Invio.": Non hai mai affrontato CR (rappresenta lo spostamento della testa della macchina da scrivere nella parte anteriore della linea) / LF (rappresenta la rotazione del rullo alla riga successiva) problemi?
Max Nanasy,

1
Sì, ma questo è davvero un problema del sistema operativo, non un problema di tastiera. Indipendentemente dal computer in uso, ti aspetti di premere il tasto Invio o Invio per passare al collegamento successivo. Non si utilizza una chiave per emettere un avanzamento riga e una per emettere un ritorno a capo.
Jordan Reiter,

4

Ovviamente hai bisogno di un approccio combinato.

Se condividi codice con altri sviluppatori, devi standardizzare e, dato che è impossibile (koff koff), devi fare in modo che tutti facciano quattro spazi.

Quindi hai bisogno di un editor abbastanza intelligente da non essere stupido, per sapere che dovrebbe trattare una linea con quattro spazi nella parte anteriore come se fosse rientrata. Qualsiasi IDE moderno o editor di programmatori può fluire automaticamente il codice con spazi anziché tabulazioni.


4

Perché qualcuno non può implementare questo:

  • il codice è memorizzato in un formato compatto vantaggioso per il sistema in questione
  • quando ogni sviluppatore apre il codice, viene formattato esattamente come lo desidera
  • quando hanno finito, tornano al formato compatto

Tutti sono felici perché vedono tutti il ​​proprio formato

È così difficile?


2
Perché non ho abbastanza tempo libero per sistemare tutti gli editor e gli IDE esistenti che le persone usano e, anche se lo facessi, convincere tutti ad aggiornare sarebbe ancora più difficile.
Peter Boughton,

Sono sicuro che potrebbero integrarlo in SVN o trovare un altro modo per escluderne gli strumenti finali.
Adolf Aglio,

13
Sembra un po 'come le schede. Ogni sviluppatore apre il file e ottiene la larghezza del rientro che desidera.
rmac,

1
Puoi già impostare RCS o CVS per utilizzare il indentprogramma.
Jé Queue,

3
ed è prudente usare il rientro per forzare l'indentazione / il codice che preclude la standardizzazione in modo che gli sviluppatori con idee di spaziatura divertenti non vengano incolpati / annotati per tutte quelle modifiche di formattazione
Tim Williscroft,

3

Spazi o schede: ciò che Atwood dice in realtà è scegliere una cosa ed essere coerente nel progetto. L'unico santo graal della formattazione del codice è assicurarsi che sia coerente in modo tale che lo psicopatico che mantiene il codice dopo di te non si senta costretto a rimediare permanentemente alla situazione.

Detto questo, se stai lavorando in Python o in qualsiasi altro linguaggio in cui lo spazio bianco è un vero e proprio costrutto di programmazione, non riesco a immaginare di usare le schede.


4
Uso le schede. Non so se hai programmato Python, ma è importante il rientro relativo. Se la riga 1 contiene i rientri x e la riga 2 indica i rientri x + 1, vengono considerati più rientri. I rientri possono essere doppi spazi, 4 spazi, tabulazioni, non importa finché sei coerente.
Macha,

@Macha - Grazie per il feedback. Non ho mai lavorato nello sviluppo di Python, ma i miei che mi hanno detto tutti che usano gli spazi, quindi è interessante incontrare qualcuno che usa le schede.
Noah Goodrich,

3
Uso le schede con Python al lavoro. È terribile.
rhettg,

3

Sono un tipo di 4 tipi di spazio, le schede non sono coerenti.


5
Come sono "non coerenti"? Sono sempre un singolo personaggio che rappresenta un singolo livello di rientro. Questa è la definizione stessa di uno schema di rientro coerente. (E che puoi personalmente, senza influenzare nessun altro, rendere visivamente che ogni modo che scegli è un vantaggio .)
Razze di leggerezza in Orbita

3

Apparentemente le schede rovinano le cose in Delphi, quindi non uso le schede in Delphi.

Comunque faccio tutto il resto usando Emacs e uso sempre le schede perché le mie schede vanno esattamente dove voglio che vadano.


Puoi fornire un esempio di questo? Sono sinceramente curioso perché uso Delphi da 15 anni e non l'ho mai visto.
GrandmasterB,

1
edn.embarcadero.com/article/10280#4.3 Questa è solo la guida di stile, ma abbiamo avuto alcuni strani errori che non posso spiegare a causa delle schede. Potrebbe anche essere dovuto a Visual Source Safe. Non posso spiegarlo, è solo una parte della tradizione della nostra azienda.
Peter Turner,

1
Il problema è che l'installazione di default per (almeno) alcune versioni di Delphi non corrispondono ai soliti idiomi di Delphi. Quindi finisci con il codice che ha ENTRAMBI.
Gerry,

3

La risposta è che non può esserci un singolo carattere di rientro appropriato per ogni situazione. La formattazione usando i personaggi non è flessibile e può causare conflitti quando si usano stili diversi all'interno di una squadra.

L'unico metodo per formattare il codice in modo impeccabile e flessibile con diversi stili di formattazione è farlo virtualmente, cioè senza caratteri di rientro. L'unico editor di codice che conosco che supporta questo è però quello utilizzato nell'esempio seguente:

Per dimostrare la formattazione virtuale , la schermata qui sotto è da un editor * XSLT che utilizza questo metodo indentazione (c'è anche un breve video qui ). Ogni personaggio in XSLT è stato evidenziato in giallo, a scopo illustrativo, per consentire di vedere chiaramente solo i caratteri di tabulazione o spazio nel contenuto. Il rientro del codice è gestito dal sistema di rendering dell'editor che regola il margine sinistro (che ha uno sfondo bianco).

inserisci qui la descrizione dell'immagine

Gli unici caratteri spaziali iniziali precedono le righe di Libri , poiché si tratta di contenuti letterali di testo, non di codice, questi caratteri spaziali devono essere preservati.

Con la formattazione virtuale scegli la larghezza del rientro in base all'ambiente e allo stile di rientro senza influire sui caratteri nel file di origine. Puoi anche impostare la larghezza del rientro su 0, se hai bisogno di una vista appiattita del codice come mostrato di seguito:

inserisci qui la descrizione dell'immagine

Per contrastare questo con la formattazione dei caratteri spaziali, la stessa XSLT aperta in un editor senza formattazione virtuale viene trasformata dal formatter automatico di quell'editor in questo:

inserisci qui la descrizione dell'immagine

I blocchi gialli vuoti più grandi nella schermata sopra mostrano chiaramente i caratteri dello spazio aggiunti dal formattatore dell'editor convenzionale. Sfortunatamente, ora questi non possono essere distinti dal contenuto reale, quindi XSLT dovrebbe essere modificato per correggere questo problema.

Sommario

XSLT è forse un caso estremo, ma questo principio vale per molti linguaggi di programmazione: i caratteri dovrebbero essere usati per il contenuto e un metodo alternativo dovrebbe essere cercato quando si tratta di formattazione.

** Divulgazione: l'editor XSLT con formattazione virtuale è stato sviluppato dalla mia stessa azienda *


1
Purtroppo, probabilmente sei avanti di circa 50 anni. L'idea francamente assurda che i programmi sono sequenze di personaggi è ancora profondamente radicata nella mente della maggior parte dei programmatori.
Tom Anderson,

3

Fino ad ora non menzionato: ci sono lingue (Python, Haskell) in cui il rientro conta. Ma 1 carattere conta come 1 carattere, sia esso uno spazio o una scheda, quindi il rientro visto dal compilatore potrebbe non essere lo stesso che vedi sullo schermo se usi le schede.

Pertanto, in lingue come Haskell, gli spazi sono un must. In Makefile, i TAB sono un must. In tutti gli altri, è una questione di gusti personali e al giorno d'oggi non molto - ogni editor decente ha un comando "(portando) le schede agli spazi" e "(portando) gli spazi alle schede".


2

Usavo gli spazi, ma ultimamente ho usato le schede solo perché questo è stato impostato su Eclipse quando alla fine l'ho notato. Tutti gli altri sviluppatori del mio team usano Eclipse, quindi aveva senso standardizzare le schede quando ci siamo resi conto che le usavamo già da anni e non c'era motivo di preoccuparsi di cambiare spazio. Sono stato sorpreso da quanto non sia stato un problema.

L'impostazione della dimensione della scheda visualizzata su 3 o 5 caratteri nell'IDE semplifica notevolmente la distinzione tra sezioni di codice che sono rientrate dagli spazi (quasi sempre 4 in questi giorni) e quelle che sono rientrate dalla scheda.


1

Sono già stati forniti molti argomenti, ma nessuno ha menzionato dove potremmo essere diretti in futuro .

Schede né spazi!

Idealmente, il codice dovrebbe essere considerato dati e non essere archiviato in alcuna specifica formattazione del testo. Qualsiasi sviluppatore può applicare la propria visione preferita. Inoltre, questa vista non dovrebbe essere limitata al solo testo , ma può includere tabelle, selettori di colore e formule matematiche.

Questa idea non è troppo inverosimile. È stato l' editor di programmazione orientata al linguaggio di JetBrain, Meta Programming System (MPS), che per primo mi ha fatto capire che questo risolve l'intera discussione, aggiungendo contemporaneamente molte altre possibilità. (Sì, questo è possibile con i plugin dell'editor, ma lavorare sul testo aggiunge direttamente così tante complessità inutili, a differenza dell'approccio adottato da MPS.)

A differenza di schede e spazi, ci sono piccoli svantaggi che possono essere menzionati per lavorare direttamente su alberi di sintassi astratti . Tutto ciò che serve è che la tecnologia maturi fino a diventare un prodotto commercialmente valido. I primi segni di questo stanno comparendo. Realizzato principalmente su MPS, un editor di ActionScript commerciale, è stato creato Realaxy .

Mi piacerebbe vedere uno dei grandi giocatori saltare sul concetto di questa tecnologia e vedere cosa succede!


0

Né è meglio, né è peggio. L'unica cosa importante è essere coerenti.

Se sei una squadra di uno, scegli quello che ti piace personalmente. Considera qual è il comportamento predefinito del tuo editor preferito, ma scegli quello che ti piace.

Se fai parte di una squadra, fai quello che fa la squadra. Periodo.

Nei miei vari lavori ho usato due spazi, quattro spazi, otto spazi, tabulazioni, spazi e tabulazioni, penso che potrei aver usato anche uno spazio. Dico al mio editore cosa fare, quindi non ci ripenso, l'editore elabora i dettagli.

L'unica altra cosa è assicurarti di scegliere un editor intelligente. Emacs o vi? Ora che è una guerra santa sono disposto a combattere :-)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.