Vai al contenuto
Articolo

Il punto e virgola in JavaScript è opzionale. Anche la civiltà lo è?

JavaScript ti lascia omettere il punto e virgola. Una riflessione (non richiesta) su cosa altro abbiamo smesso di controllare senza accorgercene.

JavaScript ti lascia omettere il punto e virgola a fine riga. L'Automatic Semicolon Insertion decide per te, silenziosamente, mentre tu dormi sonni tranquilli convinto di aver scritto codice pulito. Nessuno ti ha chiesto il permesso. È successo e basta. Ti suona familiare?

La regola che nessuno ha mai letto per intero

La specifica ECMAScript dedica un intero capitolo a quando il parser inserisce un punto e virgola al posto tuo. La maggior parte di chi scrive JS ogni giorno non l'ha mai letta, e sta bene così — finché non capita quel caso limite con return seguito da una nuova riga, il parser inserisce il punto e virgola dove non doveva, e la funzione ritorna undefined invece del tuo oggetto. In quel momento capisci una cosa: hai costruito la tua intera carriera su un accordo tacito con una macchina che non ti ha mai chiesto il consenso.

Il vero problema non è la sintassi

Il punto è che ci siamo abituati a delegare decisioni piccole e silenziose a sistemi che le prendono al posto nostro, e la maggior parte delle volte va bene così — finché non va bene. Non è diverso da come deleghiamo l'autocomplete, il linter, il code review automatico, il CI che decide se il tuo lavoro di oggi è abbastanza buono. A un certo punto smetti di chiederti se è opzionale. Diventa semplicemente com'è fatto il mondo.

Quindi no, non metterò più il punto e virgola. Ma continuerò a chiedermi, ogni tanto, cos'altro ho smesso di controllare senza accorgermene.