Vita da coder
Scrivere un programma è come interpretare due ruoli in un film poliziesco: il detective e l'assassino.
Scrivere codice è un mestiere che si impara col tempo e in quel tempo dissemiamo il mondo di pacchetti di istruzioni che oggi risolvono problemi a molte persone ma che un giorno diventeranno un problema per qualcun altro. Ciò nonostante, noi programmatori non possiamo fare a meno di scrivere codice. Quando siamo di fronte ad un problema complesso, un lavoro noioso ma automatizzabile, non possiamo fare a meno di modellarlo, cercarne una logica e derivarne un programma che un computer possa svolgere in autonomia. Il calcolatore lo eseguirà alla lettera, nel modo più onesto possibile: il problema è stabilire se quel programma fa le cose cme si deve.
Diario di uno sviluppatore
Sulla correttezza del software si sono spese tonnellate di parole, ma in questa sezione vorrei concentrarmi su quelle cose che danno colore alla vita di un coder. La professione del programmatore è cambiata tremendamente nel corso dei decenni e guardarsi alle spalle può insegnare molto sul perché le cose oggi sono come sono.
Nel Diario di uno Sviluppartore ho raccolto le mie memorie e riflessioni su un mondo che ho visto cambiare tanto da quando mi avvicinai al mio primo computer negli anni '80.
Un pizzico di autoironia
Nel corso della lunga storia dell'informatica sono nati diversi aforismi che hanno arricchito l'immaginario comune tra informatici di un umorismo da "secchioni" che potrebbe sembrare incomprensibile o di cattivo gusto. Eppure l'auto ironia ci ha sempre aiutati a superare il fatto che nel nostro lavoro ci scontriamo continuamente con un limite enorme: il nostro. Mettere una persona umana fallibile ad insegnare come si fanno i calcoli ad una macchina che ragiona in modo logico e freddo è come pretendere di insegnare la musica a Frank Zappa. Allora ben venga un po' di sano umorismo informatico a risollevare gli animi di una generazione che è cresciuta insieme a questa strana tecnologia.
Informatica retrò
Per chi è nato dopo il 2000 uno smartphone potrebbe essere un cimelio dell'infanzia. Per me invece è una cosa alla quale ho dovuto abituarmi ed imparare a conoscere da adulto. Come tutte le novità, per me lo smartphone ha dovuto subire il confronto con il vecchio: prima dello smartphone c'erano telefoni che non facevano le foto, mandavano al massimo semplici messaggi di testo e che si caricavano una volta alla settimana. La mia gioventù digitale era fatta di floppy disk che si cancellavano senza troppi preamboli, videogiochi fatti di puzzle incomprensibili presentati a 8 bit con 16 colori ed il lento comporsi di una pagina di Geocities accompagnata da rumore cacofnico di un modem 33K. Un retrogame di allora occupava a malapena 10 Mb sul disco fisso e poteva regalare mesi di spensierato divertimento. Tutto questo oggi viene classificato Retrocomputing, come se il computing di oggi fosse un'altra cosa.
Nel mondo digitale eravamo soli di fronte ai nostri problemi. Non c'era Internet o ChatGPT cui chiedere, al massimo l'amico smanettone che in scienza e coscienza poteva dare consigli che potevano poi rivelarsi catastrofici. Le riviste specializzate però raccoglievano le domande dei lettori e pubblicavano i consigli tecnici, nella speranza che quelle risposte potessero incontrare le domande di qualcun altro.
Progetti e ambizioni
La vita di uno sviluppatore però non è solo nei ricordi: molti di noi scrivono codice che condividono con altri. Oggi le piattaforme per fare ciò sono tante e funzionano magnificamente, per cui distribuire codice che altri possono usare o contribuire a migliorare è diventato più semplice. Tanti programmatori oggi hanno un profilo su queste piattaforme su cui rilasciano il frutto del lavoro casalingo compiuto nei ritagli di tempo. Non si tratta di lavorare nel tempo libero, quanto di dedicarsi al proprio hobby sviluppando qualcosa che parte da noi anziché da un ticket sulla piattaforma di bug tracking.
Come è giusto che sia, partiamo dai nostri interessi personali. I miei profili su GitLab e GitHub sono il mio laboratorio personale e incubatore di idee. Il tempo da dedicarci è sempre poco, però è in quel poco tempo che si è liberi di sperimentare, sbagliare, riprovare e ripartire da capo senza pressione. Quello è il momento in cui siamo davvero liberi di imparare.
Da grande consumatore di fantasy e giochi di ruolo, i miei sforzi si sono inevitabilmente diretti in quella direzione. L'idea di Hack the Beholder per esempio è nata appunto durante le mie avventure in Eye of the Beholder.