The author

· moonage daydream
Giuseppe Arici, smiling, in a cap with a yellow bird on it.

Giuseppe Arici has been writing software for over twenty years: Java, C#, Rails, iOS, Go, microservices, DevOps. A cap for every language. He is a co-founder and CTO at Codermine, in Brescia, and the author of Heroes of code, a book on the history of programming languages, published on Amazon. He had never seriously written a compiler before this one.

In his own words

I caught the tail end of COBOL, started out in Java, passed through C# and the Microsoft world, until Rails made me jump to Unix. From there Linux, the Mac, the iPhone: for years mobile was my line of work. Then Go came along, the Gopher won me over, and with it microservices, backends and every kind of architecture. These days I also handle DevOps. I code less than I would like and manage more than I will admit, AI agents included.

I have consulted for companies of every stripe and walked away with one conviction: the real problems are almost always organisational, not technological. So I do not tie myself to one technology, even though I have my favourites. A polyglot programmer, with all due modesty: a cap for every language, a t-shirt for every conference. My heroes are John Backus, Dennis Ritchie and Bob Kahn. I am passionate about history, and about the history of computing in particular. I co-founded #pragma mark, the Italian association that hosts conferences on the Apple ecosystem, and have spoken at Pragma Conference and Codemotion.

The book · lady stardust

Heroes of code, front cover: the title over a corridor of orange and blue columns, a figure walking towards a low sun, and a lightning bolt across the sky.

Heroes of code, subtitled A journey through the years that shook programming languages. In Italian, Gli eroi del codice.

On Amazon: the English edition · the Italian one.

It is also how to support the language. Heroes asks for no money, so if you want this to keep going, a copy of the book is the one thing that funds the time.

It opens at midnight, on an empty file, with a programmer looking for the words to tell the story of programming languages. Then a voice behind him: David Bowie. What follows is a dream journey through the rooms where it all started, Bletchley Park, MIT, Zurich, Bell Labs, Oslo, Silicon Valley, and the people who invented the way we talk to machines. At dawn the dream ends, the guide dissolves, and only the road is left.

Self-published as an A5 paperback, imprint “Independently published”, on Amazon. ISBN 9798195884758 for the English edition, 9798195873790 for the Italian.

The name Heroes and the song titles in its section headings continue that work on programming history. The quotation marks come from Bowie’s 1977 album. This interest in history also explains the historian’s seat on the panel: studying FORTRAN, ALGOL, Lisp and Simula shows how often a design choice has precedents. The historian has no veto and must support each precedent with verifiable sources. How the panel works →

Why this language exists

The book came first. I finished it and something was missing: I had spent all that time with the people who built languages, and I had never built one. Writing about them and stopping there felt like the wrong way to leave them.

So I tried. I had never seriously written a compiler before this one, and attempting what they attempted is the only way I know to learn from someone properly. That is what this project is: a piece of work made out of respect for the people it learned from, and the only thank-you I knew how to write.

Who wrote this

The compiler is written by an AI assistant that follows rules stored in the repository, the project’s archive. The assistant reads them at the start of each session. Many were written to prevent previous mistakes from recurring and record the reason for the rule.

The author sets the direction, approves each design decision and reads the reports. Some results came from his questions. During a discussion about a safety check, he asked whether its cost occurred during compilation or execution. Answering led to checking the point where an external thread, an operation started by a library, enters Heroes code. The check was moved to the correct location.

The author also requested a review against the assistant’s advice. The panel rejected the proposal and found that the requested mechanism already existed. The author approved the rejection.

Reports credit whoever produced a result: the author, the assistant or a panel member. Routine work does not need a personal attribution. The build log →

Standing on other people’s work

Heroes draws on ideas from other languages and research. The credits page names the authors and the contributions used →

The full specification is in one file. The getting started guide shows the four commands to build Heroes and run an example.