La scrittura e il codice: binomio

Gli altri: “Luca impara a scrivere per esprimerti. Serve nella vita”
Io: “Ma no, perchè dovrei farlo se posso scrivere codice che fa quello che voglio e quindi far vedere il risultato di quello che intendo dire?”

Questa è una parafrasata di quello che ho sempre pensato negli anni delle scuole superiori, erroneamente.
Un artista esprime il suo pensiero nelle sue opere, come io pensavo che bastasse scrivere codice per esprimere quello che volevo, invece ho capito che ero più vicino alla professione di uno scrittore.

Ma in che modo un programmatore è uno scrittore?

Ricordo ancora, alle superiori, un paio di episodi che mi fanno capire quanto la distanza tra codice e persona era più vicina di quanto pensassi:

La prima era quando stavo facendo un interfaccia web, codificando alcuni pulsanti per delle azioni e quando il mio prof si avvicina e mi fa:
Prof: “Che cosa fa questo tasto?”
Io, pensando: “Questa azione, ovviamente”, ma non lo era.
Ma era solo nella mia mente, non avevo comunicato bene quell’azione dalla grafica e quindi non era intuibile e usabile

La seconda volta invece era quando stavo programmando uno degli esercizi scolastici semplici.
Accorpavo il più possibile, meno linee e quindi meno lavoro e, finchè sono esercizi semplici che fai una sola volta, tutto sembra funzionare.
Ma questo non è così quando si vuole creare qualcosa di un po’ più complesso e da mantenere, generando quello che poi mi fece capire bene il libro Clean Code e poi anche Clean Architecture: Il codice deve parlare.
Il codice migliore non è scritto per la macchina (li ci sono già i compilatori a fare il lavoro di traduzione), ma parla alla persona che lo legge.

Boom…

E qui si scrive

E quindi il codice, come per un testo scritto, deve avere un senso anche a chi lo legge.

Farlo non è sempre semplice.

Ma adesso, con tutti gli strumenti, come per esempio il versionamento e i test automatici, fare il refactoring per far parlare il codice non è dispendioso.
Si può iniziare facendo si che il codice funziona, ma poi se non si vuole perdere quello che si ha in mente in quel momento, ecco che è bene rendere il codice come un libro, che fa comprendere le azioni e spiega che cosa la macchina sta eseguendo della nostra logica.

La ricetta

Chi ha iniziato a programmare credo abbia sentito almeno una volta il concetto dell’algoritmo come una ricetta.

Quando ci ho riflettuto, mentre mi appuntavo questo concetto, ho pensato a tutte le volte che leggo una ricetta e a quante volte, pur essendo giusto quello che c’è scritto, non riuscivo a comprendere i passaggi adeguati a causa della differenza tra chi l’ha scritta e me, che non ha un bagaglio culturale su quel tema.

E quindi, come per le ricette, si può fare scrivere in mille modi diversi che la fa anche riuscire, ma più si riesce a farla chiara, semplice, lineare, più sarà facile a chi la legge a capire e modificare, nel caso volesse ottenere qualcosa di differente.

Conclusione

Se potessi mandare un SMS al me del passato, gli direi: “Se migliori la scrittura, migliorerai come programmatore”, trovando quella motivazione per cui adesso scrivo questi post, per migliorarmi, passo dopo passo.