Questo articolo del blog esamina la necessità, i pro e i contro di uno stile di codifica standard per migliorare la leggibilità e l'efficienza della collaborazione in un'epoca in cui la programmazione è diventata popolare.
Con il recente progresso della tecnologia informatica, l'interesse per il settore è cresciuto, portando a un aumento delle persone che desiderano imparare a programmare. Che si studi da soli sui libri o che si seguano corsi presso accademie di programmazione specializzate per alcuni mesi, ora chiunque può creare i propri programmi, anche senza una profonda conoscenza. Questo grazie allo sviluppo di vari strumenti che migliorano l'accessibilità della programmazione. Ad esempio, Google fornisce gratuitamente l'Android SDK (Software Development Kit), consentendo lo sviluppo di programmi che funzionano sul sistema operativo Android. Questi strumenti sono pratici, aiutando anche chi non ha conoscenze specialistiche a programmare facilmente.
Tuttavia, il fatto che la programmazione sia diventata accessibile a tutti non è del tutto positivo. La sua diffusione ha portato con sé diversi problemi, in particolare la difficoltà di lettura del codice scritto in diversi stili di programmazione. Lo stile di programmazione è analogo allo stile di scrittura nel contesto della scrittura. Sebbene la scrittura possa sembrare comprensibile fintanto che la grammatica è corretta, gli autori utilizzano uno stile appropriato allo scopo del testo per facilitarne la comprensione da parte dei lettori. Ad esempio, proprio come un saggio richiede uno stile conciso e chiaro piuttosto che espressioni elaborate, anche nella programmazione, anche se un programma funziona con una sintassi corretta, l'aggiunta di uno stile di programmazione appropriato si traduce in un codice più leggibile. Al contrario, uno stile di programmazione inappropriato rende il codice difficile da comprendere.
Man mano che i programmi crescono, lo sviluppo spesso implica la collaborazione tra più persone. Pertanto, i programmatori devono considerare la leggibilità per garantire che altri possano leggere e comprendere facilmente il loro codice. Tuttavia, i non esperti con un'esperienza di programmazione limitata hanno difficoltà a scrivere codice altamente leggibile. Questo perché coloro che imparano a programmare attraverso una formazione a breve termine si concentrano esclusivamente sulla creazione di "programmi che in qualche modo funzionano", senza imparare a scrivere "codice leggibile". Un codice con scarsa leggibilità non solo ostacola la collaborazione, ma può anche causare problemi durante le future modifiche al codice.
Per risolvere questo problema, dobbiamo stabilire un modo per consentire ai principianti di scrivere codice altamente leggibile. A tal fine, propongo l'adozione di uno stile di codifica standard. Uno stile di codifica standard si riferisce a norme che impongono ai programmatori di abbandonare il proprio stile individuale e aderire a uno stile standard predeterminato. Sebbene la maggior parte dei linguaggi di programmazione non imponga restrizioni sullo stile di codifica al di là della sintassi, la standardizzazione dello stile di codifica può favorire la comprensione del codice e ridurre i problemi di leggibilità.
Naturalmente, potrebbero esserci delle controargomentazioni alla proposta di stabilire uno stile di programmazione standard. Poiché ognuno ha il proprio stile di programmazione preferito, uno stile standard potrebbe sembrare un vincolo scomodo per alcuni programmatori. Programmare secondo uno stile fisso anziché il proprio può essere difficile e può aumentare i tempi di lavoro. Ho sperimentato personalmente questa difficoltà. Lo scorso giugno, mentre lavoravo come assistente alla valutazione per le Olimpiadi coreane di informatica, ho avuto l'esperienza di scrivere codice da fornire come modello di risposta per gli studenti. Ho cercato di adattarmi allo stile delle risposte modello dell'anno scorso per renderle più comprensibili per gli studenti, ma seguire uno stile non familiare ha significato che un compito che avrebbe dovuto richiedere un'ora ne ha impiegate più di due.
Sebbene gli stili di codifica standard possano ridurre l'efficienza lavorativa in questo modo, ritengo che abbiano effetti positivi in molti modi.
In primo luogo, gli stili di codifica standard sono efficienti per la manutenzione a lungo termine dei programmi. Le aziende aggiornano continuamente i programmi dopo il rilascio, correggendo bug o aggiungendo funzionalità. Poiché i programmatori cambiano spesso durante questo processo, un codice leggibile è essenziale affinché i nuovi programmatori possano comprendere facilmente il codice esistente. Adottare uno stile di codifica standard riduce la necessità per i singoli programmatori di concentrarsi individualmente sulla leggibilità, e lo stile definito rende il codice più facile da leggere.
Alcune aziende, infatti, impongono il proprio stile di programmazione per migliorare l'efficienza della manutenzione e richiedono a tutti i programmatori di aderirvi. Durante una visita a Google Korea cinque anni fa, Google sottolineò che tutti i programmatori dovevano seguire lo stile di programmazione definito dall'azienda. Al contrario, un amico che lavorava in un'azienda di videogiochi mi disse che non avevano uno stile di programmazione predefinito.
In secondo luogo, nell'attuale tendenza in cui i progetti open source sono molto apprezzati, uno stile di programmazione standard sarebbe di grande beneficio per i programmatori. Il codice open source è disponibile al pubblico, consentendo non solo ai programmatori professionisti ma anche ai non esperti di accedervi facilmente, consentendo a diversi utenti di migliorare le funzionalità dei programmi e risolvere eventuali inconvenienti. A causa di questa natura collaborativa dell'open source, il codice scritto in stili diversi può risultare misto, rendendolo difficile da comprendere. Utilizzo spesso codice open source relativo alla computer grafica e ho personalmente riscontrato difficoltà di lettura del codice a causa della varietà di stili di programmazione. Avere uno stile di programmazione standardizzato avrebbe potuto alleviare questo inconveniente.
In terzo luogo, stili di programmazione standardizzati possono anche migliorare l'efficienza nella formazione alla programmazione. Questo riduce anche il carico di lavoro per gli insegnanti. Ricordando la mia esperienza come istruttore di un'accademia di programmazione, ho dedicato molto tempo alla lettura del codice degli studenti e alla correzione degli errori. Gli studenti tendevano a concentrarsi sulla scrittura di "codice funzionante" piuttosto che di "codice leggibile". Il codice illeggibile rendeva difficile trovare bug, richiedendo tempo e impegno considerevoli e causando notevole stress. Se gli studenti avessero scritto codice aderendo a uno stile standard, queste difficoltà si sarebbero ridotte. Il Dipartimento di Informatica della Seoul National University offre anche diversi corsi che includono valutazioni di leggibilità, incoraggiando gli studenti a scrivere codice altamente leggibile. Pertanto, uno stile di programmazione standardizzato è vantaggioso sia per gli insegnanti che per gli studenti.
Dal punto di vista dello studente, stili di programmazione standardizzati possono ridurre la confusione e aumentare la motivazione. I libri di programmazione e i corsi online spesso utilizzano stili incoerenti e a volte ne insegnano persino di sbagliati. Per gli studenti, è difficile valutare la correttezza di questi stili e il semplice fatto di seguirli può portare a scrivere codice illeggibile. Avere uno stile standard eviterebbe questo problema.
Sebbene abbiamo discusso gli effetti positivi che uno stile di programmazione standardizzato potrebbe avere, dobbiamo anche considerare la fattibilità della standardizzazione. D'altro canto, a causa del modello matematico dei linguaggi di programmazione, può essere difficile per i computer elaborare stili di programmazione che vadano oltre la semplice sintassi. Inoltre, ci sono difficoltà nel convertire tutto il codice esistente scritto in vari stili per renderlo conforme a uno standard, e sussistono dibattiti su quale stile adottare come standard.
Trovare una soluzione positiva a questi problemi di fattibilità è difficile, ma con il progredire della ricerca, le possibilità aumentano gradualmente. Ad esempio, Python si sta impegnando a regolamentare lo stile di programmazione aggiungendo una condizione sintattica chiamata regola di indentazione.
In sintesi, la standardizzazione degli stili di programmazione ha effetti positivi significativi sulla manutenzione, sulla promozione dell'open source e sulla formazione. Gli studenti di informatica, i non laureati e chiunque sia interessato alla programmazione devono impegnarsi a scrivere codice altamente leggibile. Sebbene ciò sia difficile nella situazione attuale senza uno stile standard, credo che uno stile di programmazione standardizzato sia assolutamente necessario per questi motivi.