Eliminazione dei caratteri di tabulazione in una nuova lingua

3

Sto lavorando su un nuovo linguaggio di programmazione, che determina la struttura con indentazione invece di parentesi graffe nella maniera di Python e CoffeeScript. Ovviamente posizionare le linee indentate con spazi accanto alle linee rientrate con le schede rovinerà quel tipo di sintassi, quindi non autorizzo che - ogni dato file sorgente debba usare l'uno o l'altro, non entrambi.

Mi chiedo se sarebbe meglio affidare l'uno o l'altro su tutta la linea solo per eliminare la possibilità di perdere tempo in argomento? Gli spazi sembrano essere leggermente più popolari delle schede, quindi se dovessi farlo, suppongo che avrei mandato il rientro con gli spazi (nonostante il fatto che personalmente preferisco usare le schede).

Ci sono situazioni in cui si elimina la possibilità di indentare con le schede, causerebbe un problema?

    
posta rwallace 16.04.2012 - 18:59
fonte

3 risposte

4

Sì, in una certa misura. Le guerre sante di tabulazioni e spazi sono ancora in corso, e se scegli di permetterne solo una, ti alienerai il gruppo avversario.

Il mio suggerimento è, consenti entrambi se non vuoi essere radicale.

    
risposta data 16.04.2012 - 19:34
fonte
15

No. Il carattere di tabulazione è un'aberrazione che non avrebbe mai dovuto trovarsi in ASCII, per non parlare di un linguaggio di programmazione moderno. Doveva spostare il carrello su un terminale telescrivente su uno di un set predefinito di posizioni assolute, qualcosa che non ha equivalenti nel compito di modificare il codice sorgente. Invece, di solito fa un'approssimazione approssimativa di quell'attività obsoleta, spostandosi sul multiplo più vicino di n colonne, e in un modo piuttosto imprevedibile, a meno che non si abbia una attenzione quasi autistica ai dettagli. Non vedo alcun vantaggio a permetterlo nei file di origine, soprattutto perché la sua presenza non è discernibile da un lettore ignaro (a meno che non sia abilitata un'elaborazione speciale, come la modalità di visualizzazione degli spazi bianchi di emacs).

Nota che questo non esclude l'uso del tasto Tab per fare qualcosa di utile, ad es. indentare in un modo sensibile al contesto come fanno gli IDE migliori, ma ciò non significa che il compilatore debba avere a che fare con il carattere Tab . Secondo me, può solo causare confusione e vale circa il valore per il programmatore che cerca di esprimere qualcosa come il carattere BELL, cioè nessuno.

    
risposta data 16.04.2012 - 19:10
fonte
2

Alcuni editor supportano le schede più facilmente degli spazi, ad esempio gli editor di testo semplice con funzionalità zero che non hanno funzionalità di espansione da tab a spazio. Gli spazi obbligatori rendono più scomodo per le persone che utilizzano tali editor.

Alcuni editor supportano il rientro con spazi, ma hanno solo una configurazione globale per esso piuttosto che una configurazione per file. Se l'utente preferisce rientrare con le schede, potrebbe trovare scomodo la riconfigurazione del suo editor solo per usare la tua lingua. Forse più probabile è un editor che supporta la configurazione per-file della modalità di indentazione, ma utilizza una configurazione globale per la modalità predefinita quando si crea un nuovo file: ancora una volta, se il valore predefinito non è spazi, allora è scomodo.

Alcuni programmatori preferiscono l'indentazione con le schede (ad esempio, come hai detto tu). Potrebbero trovare irritante per il linguaggio richiedere l'uso degli spazi.

Naturalmente non ci sono problemi tecnici con la richiesta di utilizzare gli spazi. Ognuno ha una chiave spaziale e la maggior parte dei programmatori usa editor in grado di rientrare con spazi senza che l'utente debba estrarre < SPACE > < SPACE > < SPACE > < SPACE > ogni volta. Tuttavia, l'irritazione non dovrebbe essere sottovalutata come un'influenza sulle scelte delle persone.

    
risposta data 16.04.2012 - 19:31
fonte

Leggi altre domande sui tag