Intervista a Ernesto Hofmann
ERNESTO HOFMANN, Laureato in fisica, programmatore, manager, direttore consulente, per quasi quarant’anni in IBM, Ernesto Hofmann è una delle grandi figure di riferimento della storia dell’informatica. Il 25 maggio 2017 ha tenuto una conferenza sul tema “Economia digitale” nella nostra sede centrale del Gruppo Datasys & Datatex, a Milano.
Tra gli anni Sessanta e oggi l’informatica è cambiata radicalmente, nella parte hardware come nella parte software. Quali sono stati secondo lei i momenti e i passaggi decisivi di questa evoluzione?
Negli ultimi anni ho maturato una profonda convinzione, e cioè che molto di quanto è accaduto dal 1965 (anno in cui ho iniziato il mio rapporto con i computer) a oggi si poteva in gran parte prevedere. Infatti proprio nell’aprile di quell’anno la rivista Electronics pubblicò un breve articolo a firma di Gordon Moore, allora alla Fairchild e in seguito cofondatore della Intel. Secondo Gordon Moore la quantità di transistor disponibili, a parità di costo, sulla stessa superficie di silicio sarebbe rapidamente cresciuta nel corso degli anni successivi, raddoppiando circa ogni due anni, e ciò avrebbe avuto ricadute industriali e sociali impressionanti.
Moore stesso faceva delle previsioni che potevano sembrare allora fin troppo avveniristiche; eppure oggi appaiono quasi conservative.
I grandi computer di quell’epoca venivano costruiti aggregando migliaia di chip per mezzo di tecniche di assemblaggio, alimentazione e raffreddamento sempre più complesse. Ma la fame di capacità di calcolo da parte di applicazioni sempre più voraci giustificava crescenti investimenti e nella costruzione dei computer e nello sviluppo di ulteriori tecniche fotolitografiche. Queste ultime potevano così evolversi vertiginosamente consentendo di costruire chip sempre più grandi e sempre più densamente popolati di circuiti.
I primi chip della cosiddetta tecnologia integrata contenevano pochissimi circuiti, ma già nel 1970 la densità circuitale era tanto cresciuta che su di un solo chip era possibile creare l’intera logica circuitale (non la memoria) di un piccolissimo computer. Con l’Intel 4004 del 1971 dotato di 2300 transistor e progettato da Hoff, Faggin e Mazor, nasceva così il primo microprocessore che poteva sommare due numeri di quattro bit in circa dieci milionesimi di secondo.
Da allora i progressi sono stati straordinari e ottenuti sostanzialmente in due modi: diminuendo la durata del ciclo di macchina e aumentando il livello di parallelismo interno. Tali miglioramenti sono stati resi possibili dalla continua riduzione delle dimensioni dei transistor (e quindi dei circuiti) per mezzo di tecniche fotolitografiche sempre più evolute. Oggi la sezione tipica (per esempio il gate) ha dimensioni lineari che possono scendere sotto i dieci nanometri. Il che vuol dire che un chip di un paio di cm di lato può ospitare diversi miliardi di transistor. E se pensiamo che ogni circuito impegna mediamente meno di dieci transistor abbiamo una popolazione di circuiti che già su di uno smartphone eccede di gran lunga quella di un grande computer degli anni Settanta. Questo sia per quanto riguarda la logica sia per quanto riguarda la memoria. Per non parlare poi dell’interfaccia di accesso al computer costituita oggi, sull’informatica di consumo, da uno schermo a colori ad alta densità.
Io vivo ormai in simbiosi con il mio Ipad. Sono al quarto modello, quello col grande schermo, e osservo giornali, riviste, libri, Internet, applicazioni di vario genere… Non c’è confronto rispetto a ciò che potevo fare nel 1965, quando il 1620 su cui lavoravo nemmeno poteva stampare direttamente ma solo perforare su scheda l’output dei miei programmi. Solo in un secondo tempo venne aggiunta la stampante 1443. Sul mio Ipadone ho centinaia di libri e articoli memorizzati e immediatamente disponibili; oltre a fotografie di tutti i generi. E posso stampare via wifi.
Qualche volta mi viene in mente una canzone: Se perdo te cosa farò, io non so più restare solo; ti cercherò e piangerò, come un bambino che ha paura!
Però negli anni Sessanta non ero stato sveglio, non avevo capito cosa sarebbe accaduto: e del resto ho scoperto la famosa legge di Moore molti anni dopo, quando ho lavorato, come si dice, in fabbrica, e per diversi anni sia a Montpellier, sia a Corbeil-Essonnes, sia a Poughkeepsie. Allora, vedendo da vicino la microelettronica, ho cominciato lentamente a capire. Ma devo aggiungere che nemmeno i progettisti, con cui lavoravo, che pure “guardavano a sei-sette anni di distanza” si rendevano pienamente conto dell’onda di tsunami che avrebbe investito la società umana. Ancora negli anni Ottanta telefonare in famiglia dagli USA era molto caro. Oggi con whatsapp è tutto diverso.
Devo aggiungere che alla fine del 1967 ero a New York, dove lavorava mio padre, e mi imbattei in un libro che era appena uscito: The Year 2000.
L’autore era il celebre Hermann Kahn, un tuttologo straordinario, consulente del presidente degli Stati Uniti, che probabilmente aveva persino ispirato Stanley Kubrick per il personaggio del dottor Stranamore.
Kahn faceva una serie di ipotesi sui trent’anni a venire, molte delle quali, benchè allora avveniristiche, si realizzarono per davvero. Una curiosa, che mi ha sempre divertito e che non si è attuata, è che avremmo imparato a decifrare il linguaggio delle balene! Kahn morì prematuramente e il suo libro è oggi pressoché sconosciuto, mentre andrebbe riletto con attenzione.
Resta il fatto che siamo stati quasi tutti conservativi. Le previsioni sul futuro erano in definitiva molto caute, soprattutto da parte dei grandi costruttori dell’epoca, che non volevano rinunciare ai grandi guadagni che la progressiva informatizzazione della società avrebbe loro assicurato, mantenendo in essere e perfezionando impianti di costruzione dei computer per i quali avevano già molto investito.
La vertiginosa evoluzione della microelettronica si è accompagnata anche a una rapida evoluzione delle telecomunicazioni, ma non a un’altrettanto rapida evoluzione del software.
Scrivere del software è difficile, in un certo senso più che non sviluppare dell’hardware. E ciò sembra curioso, perché quasi tutti pensano che costruire dell’hardware sia più difficile. Ma non è così perché il software è intrinsecamente più fragile proprio in virtù del suo alfabeto, di due soli simboli, che non consente tolleranze. Faccio un esempio un po’ azzardato ma utile per rendere l’idea. Se il voltaggio non è esattamente quello dichiarato, per esempio 220 Volt, una lampadina progettata per quell’utilizzo funzionerà ancora con margini di tolleranza ben visibili. Brillerà un po’ di meno o un po’ di più, si consumerà più o meno in fretta, ma darà luce.
Ma un solo bit errato in un programma può condurre alla catastrofe, come anche una sola base diversa da come dovrebbe essere in una sequenza genetica. Eppure scrivere un software senza errori è sostanzialmente impossibile. Lo spazio logico di un programma è talmente complesso che si sa che per ogni migliaio di istruzioni scritte da programmatori esperti restano dai tre ai cinque errori residui, correggendo i quali spesso se ne creano altri.
E questo è oggi un po’ il terreno di caccia degli hacker che cercano di trovare intrinseche debolezze software per penetrare fraudolentemente in un sistema.
Quanto detto ci dovrebbe far capire a grandi linee come si sia evoluta l’informatica negli ultimi decenni, secondo una sequenza che oggi potremmo suddividere in alcuni fondamentali periodi.
Innanzitutto l’era dei mainframe, ossia dei grandi computer. Poiché il software poteva essere un rischio ci si cautelava in modo tale che il sistema non ospitasse più di un certo numero limitato di programmi utente, ben separati tra loro. Con il successivo avvento dei sistemi transazionali, tipici per esempio delle banche, oltre al sistema operativo c’era un sottosistema che controllava i suoi utenti, che utilizzavano di norma molteplici programmi molto brevi.
Lo sviluppo applicativo in quella prima fase era laborioso e attuato da professionisti della programmazione. Inoltre c’era un aspetto amministrativo non secondario. L’acquisto di un computer, o di un ulteriore dispositivo, richiedeva di solito una verifica ad alto livello nell’ambito dell’impresa che ne faceva uso.
Con l’esplosione della microelettronica e la progressiva riduzione delle dimensioni dei computer appariva il personal computer, sul quale ciascuno poteva sviluppare in libertà il proprio software, se ne era in grado. Inoltre dal punto di vista amministrativo non era necessaria una decisione ad alto livello per dotare un ufficio di un’impresa di alcuni personal computer. E poi tali microcomputer potevano essere collegati ai computer più grandi, e via dicendo, in una filosofia che venne genericamente indicata come client-server.
E in questa fase il mondo del software applicativo poté avere molta più libertà di sviluppo.
Bastarono pochi anni, e un forte potenziamento delle reti trasmissive, per far apparire un modello di informatica molto più pervasivo e dirompente, ossia Internet.
Ma tutto ciò era sempre supportato dalla continua evoluzione della microelettronica, secondo la legge di Moore. Sempre più circuiti, in sempre minore spazio, a costi sempre più bassi. Il mondo applicativo poteva veramente esplodere. E chi lo avesse capito e vi avesse investito si sarebbe arricchito.
Ci sarebbe da riflettere sul fatto che gli eroi di questa generazione dell’informatica sono quasi tutti giovani americani. Evidentemente hanno un talento non comune e operano in un contesto nel quale c’è più attitudine a rischiare finanziariamente.
Oggi l’informatica è entrata in una nuova fase della sua evoluzione, indicata col nome di cloud computing. Ma era inevitabile che così fosse.
Se Internet può essere utilizzato per trasferire byte da un computer a un altro può essere utilizzato non solo per trasferire testi, musiche o fotografie, ma anche del software, ovvero per collegare segmenti diversi di software distribuiti su molteplici computer e farli colloquiare.
Il cloud computing è un’infrastruttura hw-sw che permette in linea di principio di accedere on-demand e attraverso Internet a un insieme dinamicamente riconfigurabile di risorse informatiche. Questo accesso viene opportunamente fatturato con il classico meccanismo del pagamento a consumo (pay-per-use).
Non dovrebbe quindi stupire che organizzazioni che dispongono di grandi e complesse installazioni possano fornire servizi a utenti che li desiderino e che li possano utilizzare in modo dinamico e flessibile. Basti pensare al ruolo che Amazon e Google si sono oggi ritagliati in un mercato sempre più vasto e articolato.
Ripeto ancora una volta che tutto ciò non sarebbe stato possibile se la microelettronica non avesse potuto beneficiare di una dinamica che sembra non avere riscontri in qualsivoglia altra tecnologia. E probabilmente per molti anni ancora appariranno ulteriori novità destinate ad avere enormi impatti sociali.