Introduzione

C’hi++ è un eccellente manuale di programmazione, un maldestro libro di filosofia e un vergognoso libro di fisica.
È la seconda volta che scrivo un manuale di questo linguaggio; la prima volta fu nel 1995, insieme al mio amico e mentore Claudio Munisso. Il libro si intitolava: Dal C al C++ passando per Windows e, come è facile intuire dal titolo, era suddiviso in tre sezioni: una dedicata al C, una dedicata al C++ e una dedicata alla programmazione per il sistema operativo Windows. Claudio scrisse tutta la sezione relativa al C, io scrissi le due sezioni restanti. Allora, però, non avevo una grande esperienza in fatto di programmazione e la mia parte di manuale non fu molto di più che una revisione, semplificata, dei manuali tecnici del linguaggio e delle librerie di funzioni per la gestione dell’interfaccia utente di Windows. Era corretta ed esaustiva, ma tutto quello che scrissi allora lo si poteva trovare anche in qualsiasi altro testo sull’argomento. Venticinque anni dopo, con alle spalle una considerevole esperienza di programmazione, ho deciso di sfruttare il periodo di clausura dovuto al primo Lockdown per scrivere un nuovo manuale che beneficiasse di tutto ciò che avevo imparato in un quarto di secolo, sia come programmatore che come docente. In particolare, volevo che il mio manuale non si limitasse a spiegare come si programma quando tutto va bene, ma anche come comportarsi quando qualcosa va storto, ovvero: quasi sempre. Per questo motivo, oltre ai capitoli canonici sui costrutti del linguaggio e sul paradigma a oggetti, ho aggiunto un capitolo sulla correzione degli errori, il cosiddetto debug, che viene spesso, se non sempre, trascurato nella letteratura tecnica, anche se è l’attività che i programmatori svolgono per la maggior parte del loro tempo.


Oltre a essere un manuale di programmazione, C’hi++ è anche un libro che prova a spiegare il senso dell’Esistenza. L’accostamento non è balzano come sembra: così come le religioni definiscono il rapporto fra l’uomo e la Divinità, i linguaggi di programmazione definiscono il modo in cui i programmi si rapportano al sistema operativo e molto spesso i principii che valgono in un àmbito possono essere utilizzati anche nell’altro. Il caricamento di dati e programmi nella memoria RAM del computer, per esempio, sono la trasposizione informatica del Ciclo delle Rinascite delle religioni orientali, mentre le classi del C++ rispecchiano i concetti aristotelici di universale e sostanza.
Il testo si ispira al Libro dei Cinque Anelli, di Myamoto Musashi (1645) e si immagina redatto da un giovane allievo che trascrive gli insegnamenti del suo Maestro sull’Arte della programmazione. I due vivono in un monastero e appartengono un Ordine religioso/informatico fondato dal mitologico Maestro Canaro che, secondo la leggenda, era stato chiamato da Dio per riscrivere in C++ l’applicazione che fa funzionare l’Universo e che, a seguito di questa esperienza, ha definito una dottrina chiamata C’hi++, capace di spiegare il senso dell’Esistenza senza alcun elemento metafisico - o quasi. I primi tre capitoli del libro introducono i personaggi e il contesto in cui si svolge l’azione; i capitoli dal quarto al ventunesimo illustrano altrettanti aspetti della programmazione in C++; il capitolo finale racconta la morte del Maestro e il suo ultimo insegnamento al discepolo. Ciascun capitolo tecnico del libro è suddiviso in due parti: nella prima parte viene spiegato un aspetto del linguaggio o della programmazione, nella seconda è illustrato uno degli aspetti del C’hi++, di solito, affine all’argomento tecnico del capitolo stesso. Al di là della presentazione romanzesca e non sempre seria, il C’hi++ è un modello che svolge piuttosto bene il compito per cui è stato concepito, ovvero: dare una spiegazione dell’Esistenza senza fare ricorso a elementi metafisici, ma sfruttando solo ciò di cui abbiamo esperienza diretta. I suoi principii si basano su una cosmogonia, chiamata Spazionismo, che riprende alcune idee del saggio Eureka, di Edgar Allan Poe, in particolare il contrasto fra contrazione ed espansione, a cui aggiunge un maggior livello di dettaglio definendo gli ipotetici elementi che costituiscono l’Universo ovvero i cosiddetti: spazioni, elementi infinitesimali dotati di “esistenza potenziale” di cui sono costituiti tutti gli elementi dell’Universo. Così come lo schermo di un computer è costituito da una matrice bidimensionale di pixel, generalmente spenti, ma capaci di accendersi se colpiti da un raggio di luce, l’Universo è costituito da una matrice tridimensionale di spazioni, capaci di acquisire massa e quindi esistere se ricevono energia.


La vita dell’Universo è vista dal C’hi++ come un ciclo continuo, in cui si contrappongono due Forze universali: la Gravità, ovvero la tendenza di tutto ciò che esiste a riunirsi nell’Uno primigenio e l’Entropia, intesa qui come una Forza che tende a separare tutto ciò che esiste. In virtù di ciò, ogni ciclo di esistenza dell’Universo è composto di tre fasi:

Fase 1. L’universo è vuoto, tutta l’energia è concentrata in un unico punto, tenuta insieme dalla Gravità.

Fase 2. L’Entropia sopraffà la Gravità e causa l’esplosione dell’Uno. L’energia comincia a espandersi nell’Universo, irradiando gli spazioni che quindi assumono massa ed esistenza, generando le stelle e i pianeti così come li conosciamo.

Fase 3. Quando la spinta data dall’Entropia diminuisce, la Gravità inverte il moto dell’energia/materia; l’Universo si contrae tornando a concentrarsi nell’Uno. Quando tutta l’energia dell’Universo è di nuovo concentrata nell’Uno, il ciclo ricomincia.

Spazioni a parte, l’unico atto di fede che il C’hi++ chiede ai suoi adepti riguarda il fatto che l’Universo tornerà sicuramente a collassare su sé stesso. Una volta che l’Universo collassato esploderà nuovamente, i casi possibili saranno due:

Caso 1. Potrebbe essere che un Big Bang avvenga solo in determinate condizioni e che quelle condizioni portino necessariamente a un Universo identico a quello come noi lo conosciamo adesso; quindi, se l’Uno esploderà di nuovo, ricomincerà tutto da capo.

Caso 2. Se ogni Big Bang avviene in circostanze e con modalità specifiche, quando l’Uno esploderà di nuovo, nascerà un nuovo Universo, che potrà avere pochi o nessun punto di contatto con quello corrente.

La prima ipotesi è possibile, ma poco probabile, quindi il C’hi++ dà per scontato che quella corretta sia la seconda. D’altro canto, per quanto bassa possa essere la probabilità che si verifichino due esplosioni uguali, in un lasso di tempo infinito non possiamo escludere che questo Universo tornerà a manifestarsi e che anche ciò che c’è in esso possa tornare a essere, noi compresi. Dato che il nostro io cosciente può manifestarsi ora qui ora lì, a seconda dei casi, se io, in questo ciclo dell’Universo, faccio del male a qualcuno, in un altro ciclo di questa particolare specie di Universo potrei ritrovarmi in una delle mie vittime, subendo le conseguenze delle mie stesse azioni. È quindi preferibile che mi comporti bene e che cerchi di convincere anche gli altri a fare altrettanto. Il problema, come sempre, è capire cosa sia davvero “bene”. Per farlo, abbiamo bisogno di introdurre l’unico elemento realmente metafisico del C’hi++ ovvero una sorta di memoria persistente dell’Universo - simile all’hard-disk dei computer o al Vāsanā di Yoga e Buddhismo - nella quale rimane traccia delle scelte che abbiamo fatto durante le nostre esistenze e delle conseguenze che hanno generato. Se capiamo che una nostra azione ha avuto delle conseguenze negative, quell’azione verrà “memorizzata” fra gli errori, e c’è la speranza che non venga ripetuta in altre occasioni. Al contrario, le azioni che hanno avuto degli esiti positivi verranno “ricordate” come buone, affinché le si ripeta in altri cicli di vita dell’Universo.


Riassumendo, per il C’hi++, ciascun essere senziente è uno dei neuroni di un cervello (l’Universo) a cui contribuisce a dare forma grazie a ciò che impara nel corso delle sue esistenze. Se riconosciamo i nostri errori come tali, è possibile che non li ripeteremo in futuro; altrimenti, continueremo a commetterli, generando delle forme “dolorose” dell’Universo. Per questo motivo, secondo il C’hi++, “il senso della Vita è il debug”, perché solo analizzando e correggendo i nostri errori, così come si fa con il software, potremo migliorare la “forma” dell’Universo e, di conseguenza, le nostre esistenze. In altre parole, il Paradiso e l’Inferno non sono altrove: sono solo due stati possibili dell’Universo e siamo noi, con le nostre azioni e le nostre intenzioni, a decidere in quale dei due vivremo. Nel libro, lo spiego meglio.

Roma, Inverno 2023.