Robinson, 2 febbraio 2025
Il mio primo codice macchina
Quando avevo tredici anni, cominciai a uscire con un gruppo di ragazzini che si riunivano periodicamente per fare lunghe escursioni sui monti intorno a Seattle. Ci eravamo conosciuti al campo scout, ed eravamo andati spesso in esplorazione e in campeggio con la nostra squadriglia, ma quasi subito avevamo formato un gruppetto a parte che organizzava spedizioni proprie. E tali appunto le consideravamo: spedizioni. Volevamo avere più libertà e correre più rischi di quelli che ci offrivano le classiche escursioni scoutistiche. Di solito eravamo in cinque: Mike, Rocky, Reilly, Danny e io. Mike era il capo. Aveva qualche anno più del resto della compagnia e un’esperienza di trekking alle spalle molto superiore alla nostra. Nel corso di circa un triennio percorremmo insieme centinaia di chilometri. Esplorammo l’Olympic National Forest a ovest di Seattle e la riserva naturale del Glacier Peak a nordest, spingendoci fino alla costa del Pacifico. Spesso camminavamo per sette o più giorni di seguito, guidati solo dalle carte topografiche, attraverso foreste incontaminate e spiagge rocciose dove, correndo da un punto all’altro della costa, cercavamo di calcolare i tempi dell’alta marea. Durante le vacanze scolastiche partivamo per lunghe escursioni. Camminavamo e ci accampavamo con ogni condizione atmosferica, e nel Pacifico nordoccidentale ciò poteva significare avere indosso per un’intera settimana pantaloni di lana fradici (che erano fondi di magazzino dell’esercito e prudevano) e ritrovarsi le dita dei piedi raggrinzite dal freddo. Non facevamo arrampicate tecniche. Niente corde, imbracature o pareti a perpendicolo: solo lunghe, faticose camminate. Non era pericoloso, se non per il fatto che eravamo degli adolescenti sperduti in mezzo alle montagne, a molte ore di distanza da eventuali soccorsi e in un’epoca ben precedente a quella dei cellulari. Con il passare del tempo diventammo una squadra ardita e coesa. Al termine di ogni lunga giornata di cammino decidevamo il posto in cui accamparci e senza proferire verbo ognuno di noi svolgeva il proprio compito. Mike e Rocky legavano la tela cerata che fungeva da tetto per la notte. Danny andava in cerca di legna secca nel sottobosco, e Reilly e io provavamo ad accendere il fuoco con pietra focaia e rametti asciutti.Alla fine mangiavamo. Viveri a buon mercato che nonpesavano troppo nello zaino, ma erano abbastanza sostanziosi da darci l’energia sufficiente ad affrontare il cammino. Per me niente ha mai avuto un sapore più buono. A cena tritavamo una scatoletta di carne e la mischiavamo con una confezione di Hamburger Helper o una busta di salsa Stroganoff. La mattina davamo fondo a una confezione di Carnation Instant Breakfast oppure usavamo una polvere che, aggiungendovi dell’acqua, si trasformava – secondo la scritta sulla scatola – in un’omelette con prosciutto, peperoni e cipolla. La mia preferita, la mattina, era l’Oscar Mayer Smokie Links, una salsiccia che la pubblicità definiva «carne al cento per cento» e che oggi non è più in commercio. Ci servivamo di un’unica padella per preparare quasi tutto il cibo, e lo mangiavamo in barattoli da caffè vuoti che ciascuno di noi si portava dietro. Usavamo quelle lattine come tegami, secchi per l’acqua e scodelle per il porridge. Non so chi di noi abbia inventato il beverone caldo al lampone. Non che sia stata una grande innovazione culinaria: si versava un preparato per gelatina istantanea nell’acqua bollente e poi si beveva. Fungeva da dessert o, la mattina, da iniezione di zuccheri prima di ore e ore di scarpinata. Lontano dai nostri genitori e dal controllo di qualsiasi adulto, decidevamo noi dove andare, cosa mangiare, quando dormire, e valutavamo da soli quali rischi correre.A scuola, nessuno di noi era il ragazzo più figo della classe. Solo Danny praticava uno sport di squadra, il basket, e presto lo abbandonò per avere più tempo per le nostre camminate. Ero il più magro del gruppo e di solito quello che aveva più freddo, e mi pareva sempre di essere anche il più debole. Mi piacevano, però, la sfida fisica e la sensazione di autonomia. (...)Sempre in quegli anni, passavo molto tempo anche con un altro gruppo di ragazzi. Kent, Paul, Ric e io frequentavamo tutti lo stesso istituto, la Lakeside School, che si era organizzata in maniera tale da permettere agli allievi di connettersi a un grande mainframe tramite linea telefonica. Era assai raro, all’epoca, che dei teenager avessero accesso a un computer. Noi quattro ci appassionammo molto all’elaboratore elettronico e cominciammo a dedicare tutto il nostro tempo libero a scrivere programmi e a studiare ciò che si poteva ottenerne.All’apparenza, non c’era niente di più distante che scarpinare nei boschi e programmare al computer, ma entrambe le cose erano in fondo come un’avventura. Con l’uno e l’altro gruppo di amici esploravo nuovi mondi, viaggiando in luoghi che nemmeno la maggior parte degli adulti era in grado di raggiungere, all’epoca. Come le escursioni, la programmazione faceva per me, perché mi permetteva di stabilire una mia misura del successo. Inoltre, mi sembrava senza limiti, non determinata dalla velocità a cui si correva o dalla distanza a cui si poteva tirare un oggetto. La logica, la concentrazione e l’energia necessarie per scrivere programmi lunghi e complicati mi riuscivano naturali. Diversamente da quanto accadeva nelle escursioni, in quel particolare gruppo di amici ero io il leader. Verso la fine del mio secondo anno di superiori, nel giugno 1971, Mike mi chiamò per parlarmi della nostra prossima escursione: ottanta chilometri sulle Olympic Mountains. Battezzò il percorso che aveva scelto “Press Expedition Trail”, il sentiero della spedizione della stampa, un nome ispirato a un gruppo che, finanziato da un quotidiano, aveva esplorato quelle zone nel 1890. Mike si riferiva forse all’escursione durante la quale gli uomini della squadra erano quasi morti di fame e i vestiti erano marciti loro addosso? Sì, intendeva proprio quella, confermò, ma in fondo era successo tanto tempo prima. Ottant’anni dopo sarebbe stata ancora un’escursione ardua: quell’anno si erano avute nevicate molto abbondanti, quindi era un’impresa particolarmente difficile. Visto però che tutti gli altri – Rocky, Reilly e Danny – volevano cimentarsi, non potevo certo esimermi facendo la figura del fifone. Inoltre era della partita anche uno scout più giovane, un ragazzino di nome Chip, per cui dovevo andare per forza.Il piano era di salire sul passo Low Divide, scendere fino al fiume Quinault, poi seguire la stessa pista al ritorno, pernottando nelle capanne di legno lungo la strada. Sei o sette giorni in tutto. Il primo fu facile: trascorremmo la notte in un bel prato ammantato di neve. Uno o due giorni dopo, mentre salivamo sul passo Low Divide, la neve si fece più alta. Quando raggiungemmo il puntoin cui avevamo programmato di dormire, trovammo il rifugio sepolto nella neve. In cuor mio provai per un istante un intimo giubilo. Sicuramente, pensai, saremmo tornati indietro, trovando riparo nella capanna molto più accogliente accanto alla quale eravamo passati durante il giorno. Avremmo acceso un fuoco, ci saremmo scaldati e avremmo mangiato.Mike propose di mettere ai voti se tornare indietro o proseguire fino alla meta. Sia l’una sia l’altra scelta avrebbero comportato una camminata di parecchie ore. «Abbiamo superato un rifugio, cinque o seicento metri più in basso. Possiamo tornare lì e pernottarci, oppure continuare fino al fiume Quinault» prospettò Mike. Non aveva bisogno di dire esplicitamente che tornare indietro avrebbe significato il fallimento della nostra missione, che era di raggiungere il fiume. «Tu che cosa ne pensi, Dan?» chiese Mike. Danny era, benché solo ufficiosamente, il secondo in comando nel gruppetto. Era più alto di tutti gli altri, ed era un eccellente escursionista con gambe lunghe e apparentemente instancabili. Qualunque cosa avessescelto, Danny avrebbe influenzato la votazione finale. «Be’, ci siamo quasi, forse dovremmo andare avanti» sentenziò. Dopo qualche minuto di camminata, dissi tra il serio e il faceto: «Non mi è piaciuto quello che hai fatto, Danny. Avresti potuto evitarlo».Ricordo ancora quella scarpinata per tutto il freddo e l’infelicità che provai. Ricordo anche ciò che feci subito dopo la decisione di Danny: mi ritirai nei miei pensieri. E mi immaginai un codice macchina. Giusto in quel periodo, qualcuno aveva noleggiato alla Lakeside un computer PDP-8, fabbricato dalla Digital Equipment Corporation. Era il 1971 e, benché fossi già immerso nel nascente mondo dell’informatica, non avevo mai visto niente del genere. Fino ad allora io e i miei amici avevamo usato solo enormi mainframe che erano condivisi simultaneamente con altre persone. Di solito ci connettevamo a essi tramite linea telefonica, dato che si trovavano a molti chilometri di distanza o erano chiusi a chiave in laboratori separati. Il PDP-8, invece, era stato ideato per l’utilizzo diretto di un’unica persona ed era abbastanza piccolo dapoter stare su una scrivania. All’epoca, benché pesasse trentasei chili e costasse 8500 dollari, era con ogni probabilità la cosa più simile al personal computer che sarebbe diventato di uso comune circa un decennio dopo. Per sfida, decisi che avrei cercato di scrivere una versione del linguaggio di programmazione BASIC per il nuovo computer.Prima dell’escursione mi ero concentrato sulla parte del programma che avrebbe istruito il computer sull’ordine in cui avrebbe dovuto eseguire le operazioni nel caso in cui l’input fosse stato un’espressione, come 3 (2 + 5) × 8 – 3, o nel caso in cui si fosse voluto creare un gioco per il quale occorreva una matematica complessa. In programmazione questa funzione è chiamata «valutatore di espressione». Mentre arrancavo lungo la pista fissando il terreno davanti a me, riflettevo sul mio valutatore, chiedendomi quali fossero i passi necessari per eseguire le operazioni. Era cruciale non sovraccaricare il sistema. All’epoca i computer avevano pochissima memoria, il che significava che i programmi dovevano essere leggeri, scritti usando meno codice macchina possibile per non intasarla. Il PDP-8 aveva solo 6 kilobyte di memoria che il computer usa per immagazzinare i dati su cui lavora. Mi figurai il codice e poi cercai di capire in che modo il computer avrebbe eseguito i miei ordini. Il ritmo della camminata mi conciliava il ragionamento, un po’ come me lo conciliava l’abitudine di dondolarmi avanti e indietro su una sedia. Per il resto della giornata la mia mente rimase immersa nel problema di codifica. Quando scendemmo più a valle, la neve cedette il posto a un sentiero leggermente inclinato che attraversava un antico bosco di abeti verdi e rossi. Alla fine raggiungemmo il fiume, ci accampammo, mangiammo la nostra salsa Stroganoff e finalmente dormimmo.La mattina dopo, di buon’ora, risalimmo di nuovo verso il passo Low Divide, in mezzo a una pioggia ghiacciata e a un vento tremendo che ci sferzava il viso di traverso. Ci fermammo sotto un albero giusto il tempo di dividerci un pacchetto di cracker Ritz, poi proseguimmo. Ogni rifugio lungo il sentiero rigurgitava di altri escursionisti in attesa della fine della tempesta. Così continuammo a camminare, aggiungendo altre ore a una giornata davvero interminabile. Attraversando un torrente, Chip cadde e si fece un brutto taglio al ginocchio. Mike gli pulì la ferita e vi applicò dei cerotti a farfalla, sicché da quel momento procedemmo alla velocità consentita dal claudicanteChip. Nel frattempo, perfezionai in silenzio il mio codice. In pratica, per tutti e trentadue i chilometri che percorremmo quel giorno, non aprii bocca. Alla fine, arrivammo a un rifugio che poteva ospitarci e ci accampammo lì.Come dice il noto adagio, «avrei scritto una lettera più breve, se ne avessi avuto il tempo». È più facile scrivere un programma in uno sciatto codice di molte pagine che scriverlo su una pagina sola. La versione sciatta funzionerà più lentamente e userà più memoria. Nel corso della camminata ebbi il tempo di elaborare la versione breve. Durante quella lunga giornata la ridussi ulteriormente, un po’ come si fa quando si tolgono le ultime schegge da un bastoncino a cui si vuole fare una bella punta. Ciò che calcolai a mente mi parve efficace e piacevolmente semplice. Era di gran lunga il miglior codice che avessi mai scritto. Quando, il pomeriggio seguente, tornammo dove iniziava il sentiero, la pioggia finalmente cedette il posto a un cielo sereno e a un tiepido sole. Provai l’euforia che avvertivo sempre dopo una scarpinata, nel momento in cui avevo ormai superato le difficoltà del percorso. In autunno, all’inizio dell’anno scolastico, chiunque ci avesse prestato il PDP-8 se lo riprese. Non terminai mai il mio progetto di programmazione in BASIC, ma il codice che avevo elaborato mentalmente durante la lunga camminata, con il suo valutatore di espressione e la sua bellezza, mi rimase stampato nella mente.Un giorno di tre anni e mezzo dopo, mentre ero al secondo anno di college e non sapevo ancora bene quale carriera intraprendere, Paul, uno dei miei amici della Lakeside, piombò nella camerata per dirmi che esisteva un computer straordinariamente innovativo. Sapevo che potevamo scrivere per il nuovo elaboratore una versione del linguaggio di programmazione BASIC, perché avevamo un vantaggio iniziale. Subito mi tornò in mente quel terribile giorno sul passo Low Divide. Ripescai dalla memoria il codice macchina che avevo elaborato e lo digitai sulla tastiera di un computer, piantando così il seme della futura industria informatica e di quella che sarebbe diventata una delle più grandi aziende del mondo.