Nato il 23 giugno del 1912 a Londra, quest’anno ricorre il centenario della sua nascita, Alan Turing è un nome conosciuto da pochi ed ignorato da molti (e parlo soprattutto di informatici), la cui biografia umana e scientifica varrebbe la pena di essere se non insegnata almeno letta.
Figlio di un funzionario del governo inglese di stanza in India, Alan Turing nasce in un’Inghilterra vittoriana, oramai decadente e disperatamente obnubilata da un’immagine di potenza coloniale d’altri tempi. In provincia l’istruzione, gli insegnanti ed i loro metodi sono lo specchio di una società chiusa, bigotta ed ipocrita, per nulla incline ad accogliere spiriti curiosi ed identità complesse. Non a caso Turing, mente straordinariamente curiosa e votata al simbolismo scientifico, risulta tutt’altro che ‘brillante’ nei primi anni di studio. Eppure, stregato fin da piccolo da un classico libro di divulgazione scientifica dell’epoca, Natural Wonders every Child Should Know, già allora Turing dimostra di avere una capacità d’analisi ed un talento innato per la modellazione della complessità largamente al di fuori della portata di chiunque gli stesse intorno.
A 13 anni e grazie agli illuminati genitori poté finalmente frequentare un istituto indipendente, non votato cioè quasi esclusivamente alla forgiatura di sudditi di sua maestà ‘colti in materie classiche e ben educati’. L’occasione dovette apparire a Turing di quelle da non farsi assolutamente sfuggire se, pur di non mancare al primo giorno di lezioni, si fece la bellezza di 97 km da solo ed in bicicletta con tanto di soggiorno notturno in una locanda trovata per strada. Fu qui, alla Sherborne School, che Turing incontrò un altro brillante ragazzo, Christopher Morcom, di cui s’innamorò perdutamente e con il quale strinse un legame fortissimo e non solo sul piano sentimentale. La morte prematura ed improvvisa di Christopher, avvenuta nel Febbraio del 1930 a causa di una epidemia di tubercolosi bovina, non solo sconvolse Turing dal punto di vista umano ed emotivo ma lo segnò fortemente anche dal punto di vista della propria concezione scientifica. E’ in quel periodo infatti che oltre a diventare ateo Turing matura la convinzione che tutti i fenomeni naturali, incluso quindi il funzionamento del cervello umano, debbano necessariamente poter essere descritti (e compresi) a partire da un punto di vista materialistico e attraverso l’uso del formalismo logico-matematico.
Il periodo seguente, dal 1931 al 1934, lo vide tra i protagonisti al King’s College di Cambridge – laurea a massimi voti in un vero e proprio tempio per lo studio più avanzato della matematica. Nel Maggio 1936, poco prima di partire per un periodo di studi nel famoso Institute for Advanced Study di Princeton negli Stati Uniti (tra l’altro sotto l’egida di Alonzo Church, un mostro sacro dell’informatica teorica), pubblicò lo scritto che forse più di altri ha rivoluzionato l’intera storia dell’informatica così come la conosciamo oggi, “On Computable Numbers, with an Application to the Entscheidungsproblem". E’ in questo lavoro che Turing, riprendendo e riformulando i risultati di Kurt Gödel sui limiti della computabilità, introduce per la prima volta un formalismo di sua invenzione che anziché basarsi su complicati linguaggi formali descrive una vera e propria macchina, fisicamente realizzabile (in pratica un nastro di lunghezza arbitraria su cui poter scrivere secondo un insieme finito di regole prestabilite) oggi nota come Macchina di Turing.
Grazie a questa macchina Turing non solo dimostra che qualsiasi problema descrivibile mediante un algoritmo può essere eseguito da una Macchina di Turing ma dimostra anche che il problema della decidibilità (Entscheidungsproblem) non ha soluzione: in altre parole non è possibile decidere per via algoritmica se e quando una Macchina di Turing (dunque un algoritmo) giungerà al suo termine.
Durante la seconda guerra mondiale Turing fu una delle colonne portanti del gruppo di criptoanalisti che, nascosti nei cottage di Bletchley Park, ebbero l’arduo – e come dimostrarono sul campo non impossibile – compito di decifrare le trasmissioni criptate dell’esercito nazista (davvero intrigante la storia del contributo di Turing alla versione inglese della ‘Bomba’, il decifratore usato per decriptare le comunicazioni sottomarine tedesche, crittografate con una macchina Enigma a 4 rotori… qualcosa come 1022 possibili diverse configurazioni).
Devastato da una cura ormonale infertagli per ‘curare’ (!) l’omosessualità autodenunciata – in Inghilterra in quegli anni esserlo era reato – e morto a soli 42 anni a causa di un avvelenamento da arsenico (forse suicida morsicando una mela avvelenata, la famosa mela morsicata, anche se esistono altre ipotesi di intossicazione accidentale a causa di un tentativo di doratura artigianale), Alan Turing può essere certamente considerato tra i padri di tutti i moderni calcolatori – nella quasi totalità dei casi delle Macchine di Turing implementate seguendo l’architettura proposta da Von Neumann.
Rileggere Turing significa entrare in contatto con una disciplina, l’informatica teorica, totalmente ignorata al di fuori delle università e quasi mai prevista nei piani di studi delle lauree biennali in informatica. E i risultati si vedono, eccome. Perché disegnare, creare o modificare software senza averne le basi teoriche è un po’ come costruire ponti senza conoscere le leggi della fisica. Se va bene e si è fortunati si ottengono risultati a dir poco mediocri, mentre se le cose vanno male…. Non a caso il rapporto tra le performance (in termini di efficienza, di velocità, di consumo di risorse) e l’aumento della potenza elaborativa disponibile anziché mantenersi almeno costante diminuisce col passare degli anni.
D’altronde il rischio per una disciplina che non coltiva la propria Storia se non attraverso l’avvicendarsi delle release dei software che vanno per la maggiore è che al crescere della sua penetrazione nel mondo reale (basti pensare all’internet-of-things…) non corrisponda un’eguale diffusione di una cultura informatica che aiuti a distinguere tra la magia apparente e la realtà di una complicatissima ragnatela di migliaia moduli software tra loro comunicanti. Certo studiarsi gli algoritmi classici di string matching o di esplorazione degli alberi decisionali non sarà certamente appealing come crearsi da zero ed in meno di un giorno un portale full optional con Joomla… ma se non ritorniamo a formare sviluppatori ed ingegneri del software con solidissime basi teoriche rischiamo concretamente di ritrovarci con un esercito di assemblatori di prefabbricati anziché con un manipolo di brillanti inventori col solo limite dell’immaginazione.
In un futuro che si può facilmente immaginare come sempre più governato da algoritmi perlopiù ‘nascosti’ diventerà sempre più importante coltivare competenze specialistiche di tipo teorico – oltre all’informatica teorica la teoria dei sistemi dinamici per esempio. E allora da dove partire? Dal passato, dalle origini, come sempre. Studiando l’informatica per quello che è sempre stata, ossia una disciplina matematica, basata sulla logica e descritta in un linguaggio formale, ‘discreto’, raffinato ma per molti aspetti apparentemente distantissimo dall’esperienza informale, ‘continua’ e ruspante della realtà. Alan Turing ne era un maestro, fosse anche solo per questo vale la pena, oltre che di ricordarne la nascita, di andare a rileggersi la sua storia.
* Simone Bosetti è ICT Manager di RBM Salute