L’autore

· moonage daydream
Giuseppe Arici sorride e indossa un cappellino con un uccellino giallo.

Giuseppe Arici scrive software da oltre vent’anni: Java, C#, Rails, iOS, Go, microservizi, DevOps. Un cappellino per ogni linguaggio. È co-fondatore e CTO di Codermine, a Brescia, e autore di Gli eroi del codice, un libro sulla storia dei linguaggi di programmazione, pubblicato su Amazon. Non aveva mai scritto sul serio un compilatore prima di questo.

Con le sue parole

Ho incrociato il COBOL, sono partito da Java, sono passato per C# e il mondo Microsoft, finché Rails mi ha fatto saltare su Unix. Da lì Linux, il Mac, l’iPhone: per anni il mobile è stato il mio mestiere. Poi è arrivato Go, il Gopher mi ha conquistato, e con lui i microservizi, i backend e ogni genere di architettura. Di questi tempi mi occupo anche di DevOps. Scrivo codice meno di quanto vorrei e gestisco più di quanto ammetterò, agenti intelligenti compresi.

Ho fatto consulenza per aziende di ogni tipo e me ne sono venuto via con una convinzione: i problemi veri sono quasi sempre organizzativi, non tecnologici. Per questo non mi lego a una sola tecnologia, anche se ho le mie preferite. Mi definisco, con tutta la modestia possibile, un programmatore poliglotta: un cappellino per ogni linguaggio, una maglietta per ogni conferenza. I miei eroi sono John Backus, Dennis Ritchie e Bob Kahn. Sono appassionato di storia, e di storia dell’informatica in particolare. Ho co-fondato #pragma mark, l’associazione italiana che organizza conferenze sull’ecosistema Apple, e ho parlato a Pragma Conference e Codemotion.

Il libro · lady stardust

Gli eroi del codice, copertina: il titolo sopra un corridoio di colonne arancioni e blu, una figura che cammina verso un sole basso, e un fulmine che attraversa il cielo.

Gli eroi del codice, sottotitolo Viaggio negli anni che sconvolsero i linguaggi di programmazione. In inglese, Heroes of code.

Su Amazon: l’edizione italiana · quella inglese.

Ed è anche il modo per sostenere il linguaggio. Heroes non chiede soldi, quindi se vuoi che vada avanti, una copia del libro è l’unica cosa che ne finanzia il tempo.

Si apre a mezzanotte, su un file vuoto, con un programmatore che cerca le parole per raccontare la storia dei linguaggi di programmazione. Poi una voce dietro di lui: David Bowie. Quello che segue è un viaggio onirico nelle stanze dove tutto è cominciato, Bletchley Park, il MIT, Zurigo, i Bell Labs, Oslo, la Silicon Valley, e tra le persone che hanno inventato il modo in cui parliamo alle macchine. All’alba il sogno finisce, la guida si dissolve, e resta solo la strada.

Autopubblicato in brossura A5, marchio “Independently published”, su Amazon. ISBN 9798195873790 per l’edizione italiana, 9798195884758 per quella inglese.

Il nome Heroes e i titoli di canzoni nelle sezioni continuano quel lavoro sulla storia della programmazione. Le virgolette riprendono quelle dell’album di Bowie del 1977. L’attenzione alla storia spiega anche la presenza di uno storico nel panel, il gruppo di giudici che esamina le modifiche al linguaggio: chi ha studiato FORTRAN, ALGOL, Lisp e Simula sa quanto spesso una scelta abbia già dei precedenti. Lo storico non ha potere di veto e deve documentare ogni precedente con fonti verificabili. Come funziona il panel →

Perché esiste questo linguaggio

Il libro è venuto prima. L’ho finito e mi è rimasto addosso che mancava qualcosa: avevo passato tutto quel tempo con le persone che i linguaggi li hanno costruiti, e un linguaggio non l’avevo mai costruito. Scrivere di loro e fermarmi lì mi sembrava il modo sbagliato di lasciarli.

Così ci ho provato. Non avevo mai scritto sul serio un compilatore prima di questo, e provare quello che hanno provato loro è l’unico modo che conosco per imparare davvero da qualcuno. Questo progetto è quello: un lavoro fatto per rispetto verso le persone da cui ha imparato, e l’unico grazie che ho saputo scrivere.

Chi ha scritto tutto questo

Il compilatore è scritto da un assistente AI che segue un insieme di regole conservato nel repository, l’archivio del progetto. L’assistente le legge all’inizio di ogni sessione. Molte sono nate per evitare di ripetere errori già commessi e ne registrano il motivo.

L’autore sceglie la direzione, approva ogni decisione di progetto e legge i resoconti. Alcuni risultati sono nati dalle sue domande. Durante una discussione su un controllo di sicurezza ha chiesto se il costo si pagasse durante la compilazione o durante l’esecuzione. La risposta ha portato a controllare il punto in cui un thread esterno, cioè un’operazione avviata da una libreria, entra nel codice Heroes. Il controllo è stato così spostato nel punto corretto.

L’autore ha anche richiesto una revisione contro il consiglio dell’assistente. Il panel ha respinto la proposta e ha verificato che il meccanismo richiesto esisteva già. L’autore ha approvato il rifiuto.

I resoconti attribuiscono ogni risultato a chi lo ha prodotto: l’autore, l’assistente o un membro del panel. Il lavoro ordinario non richiede un’attribuzione personale. Il diario →

Sulle spalle di altri

Heroes riprende idee di altri linguaggi e lavori di ricerca. La pagina dei ringraziamenti indica gli autori e i contributi usati →

La specifica completa è in un solo file. La guida per iniziare mostra i quattro comandi per compilare Heroes ed eseguire un esempio.