L'indentazione ti dice dove sei, in entrambi gli stili di sintassi. Se scrivi un programma VB o un programma C # su una sola riga, presto non sarai in grado di dire dove sei nella sintassi annidata. La macchina analizza le frasi di fine blocco o le parentesi graffe, ma gli umani hanno bisogno di indentazione.
Le frasi finali bloccate derivano da un'era di schede perforate e nastro di carta, quando la programmazione era molto meno interattiva e visiva. O, davvero, non interattivo. È stato difficile inserire programmi, quindi i programmatori avevano bisogno di compilatori per essere molto intelligenti nell'analisi della sintassi e nel ripristino degli errori.
In quell'era passata, il ciclo di compilazione di compilazione potrebbe aver comportato la preparazione di schede perforate con un perforatore di schede, e poi il lining fino alla finestra di presentazione del lavoro in cui un impiegato prendeva le schede perforate e le inviava alla macchina. Successivamente, il programmatore avrebbe raccolto l'output (stampato su carta) da un'altra finestra. Se il programma avesse errori, l'output consisterebbe solo nella diagnostica del compilatore. Quando i tempi di risposta sono lunghi, il costo aggiuntivo di digitare end if
anziché solo )
è giustificato se aiuta a migliorare la qualità della diagnostica, poiché il programmatore deve correggere il maggior numero possibile di errori in una singola iterazione per ridurre il numero di iterazioni che perdono tempo attraverso la finestra di invio del lavoro.
Quando manca una parentesi graffa di chiusura, è difficile dire quale controvento sia quella che non è chiusa. (Il compilatore potrebbe dover analizzare il rientro per fare un'ipotesi plausibile). Se elimini una parentesi chiusa all'interno di una funzione, sembra che l'intero resto del file sia parte di quella funzione, risultando in una raffica di messaggi di errore inutili. Mentre se si ha una sintassi di end function
, il compilatore può dedurre dove finisce la funzione errata, recuperare e analizzare correttamente le funzioni successive, fornendo ulteriori strumenti diagnostici, se ce ne sono, che sono significativi.
Quando lavori in un editor di testo in grado di riconoscere il codice che indentifica e colorizza automaticamente il tuo codice, su una schermata ad alta risoluzione in cui è possibile visualizzare sessanta o più righe, gli argomenti per quei tipi di linguaggi maldestri non si applicano più. È possibile modificare e ricostruire i programmi in modo incrementale in modo così rapido da poter gestire un errore alla volta. Inoltre, visualizzando contemporaneamente ampie sezioni del programma sullo schermo e mantenendo il corretto rientro, è possibile ridurre l'occorrenza di tali tipi di errori di annidamento. E un buon editor di testo di programmazione segnalerà anche alcuni tipi di errori di sintassi durante la digitazione. Inoltre, esistono editor pieghevoli che comprimono i blocchi di un programma in base alla sua sintassi, fornendo una vista "a tratteggio" della sua struttura.
Lisp ha usato le parentesi dall'inizio e forse, non a caso, gli hacker Lisp hanno aperto la strada alla programmazione come un'esperienza interattiva costruendo sistemi che accettavano programmi in piccoli blocchi (espressioni).
In realtà, non hai bisogno di simboli finali, come illustra il linguaggio Python. L'identificazione può solo essere la struttura. Gli umani usano già indentazione per ingannare la struttura del codice anche nelle lingue in cui la macchina si basa su simboli o frasi finali.