Pensieri su questi? Python è un esempio, e non è una pugnalata a Python, mi piace il linguaggio.
Quali lingue hanno un requisito di indentazione?
Nei Makefile, è fastidioso. In Python, lo trovo molto appropriato e rende la sintassi molto più pulita. Penso che la cosa che lo rende migliore in Python sia che non sono richiesti caratteri speciali, l'unico requisito è che tu sia coerente. Dovresti farlo comunque, quindi non avrai alcun costo aggiunto seguendolo.
In generale, sono contro le caratteristiche di schiavitù e disciplina che sono orientate a rendere difficile scrivere codice cattivo. Tuttavia, non trovo che la rientranza forzata di Python si adatti a questo stampo. Il compilatore / interprete deve sapere dove iniziano e terminano i blocchi in qualche modo, e l'unico modo leggibile umano per indicare questo è il rientro. Pertanto, usare indentazione per denotarlo al compilatore / interprete è un buon esempio di DRY.
Usare le parentesi graffe per il compilatore / interprete più il rientro per gli umani è come scrivere un codice altrimenti imperscrutabile ma eccessivamente commentato. Le informazioni vengono specificate una volta per il compilatore / interprete, quindi di nuovo per gli umani. Deve essere mantenuto sincronizzato manualmente e diventa quasi impossibile capire se non è sincronizzato.
Mi piace la regola dell'indentazione di Python.
L'ho detto altrove e ripeterò qui, a chi si lamenta di Python a questo riguardo dovrebbe essere chiesto di mantenere un codice sorgente scarsamente rientrato. Se capisci quanto sia doloroso leggere questo tipo di codice sorgente, apprezzerai questa regola.
Non mi piace molto questo tipo di requisito linguistico.
Penso che Python sia un ottimo linguaggio ma questo mi tiene lontano da esso!
Per coloro che si lamentano del codice non formattato o non corretto, dirò: usa un formattatore di codice!
Penso che questa restrizione sia più invasiva di una regola sull'avere una parentesi, usando '.' o "- >" per l'accesso ai membri o utilizzando un ';' o un '.' per terminare una linea.
FORTRAN e COBOL vecchio stile avevano requisiti di indentazione basati sul layout della scheda perforata, che ho trovato fastidioso. I requisiti di indentazione non sembrano infastidirmi se posso usare tutte le colonne, ma fare attenzione a iniziare una riga sulla colonna 7 perché 6 è per la continuazione della linea è scomodo.
La notazione di Haskell do è una specie di buon equilibrio qui. Se vuoi fare indentazione basata puoi farlo. Se vuoi fare il punto e virgola, puoi farlo. Non proprio la struttura a blocchi poiché è un linguaggio diverso, ma l'idea di "usare ciò che ti piace perché questo non è davvero un dettaglio importante" è una cosa che mi piace.
Questo mi sembra puramente una questione di preferenza.
Personalmente non mi piacciono gli spazi vuoti significativi per i seguenti motivi:
Chiedi le lingue che applicano il rientro. Python e make sono stati menzionati. Un altro è il linguaggio esoterico spazio bianco .
FORTRAN è stato menzionato anche in altre risposte: le prime versioni richiedevano che il codice iniziasse in colonne specifiche (o oltre, quindi non è esattamente lo stesso).
Comprendo che Haskell applica il rientro, in base a questa parte della sua specifica: " Un contesto nidificato deve essere ulteriormente rientrato rispetto al contesto che lo racchiude (n > m). In caso contrario, L fallisce e il compilatore dovrebbe indicare un errore di layout. "
Non c'è il pranzo gratis; qualcosa deve essere usato per un delimitatore. Poiché utilizziamo la spaziatura comunque, l'uso di EOL, spazio e caratteri di tabulazione ha senso e riduce il disordine.
No. Raramente vengono morso dai requisiti di indentazione (forse perché sono un pignolo per i dettagli). Indenterei comunque il mio codice, quindi non è un problema. (L'unica volta che è stato un problema è con un vecchio codice Python su cui sto lavorando, i precedenti sviluppatori lo hanno scritto con schede a 2 spazi (ick!), Quindi i nuovi sviluppatori hanno creato alcuni file con schede a 4 spazi, e io ho il mio editor è impostato su schede a 4 spazi, quindi l'indentazione è un po 'un problema con i vecchi file.) Non ho mai avuto problemi nemmeno con Haskell. È un po 'fastidioso nei Makefile, ma non direi che è "ingombrante".
Leggi altre domande sui tag language-design