Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
C'era senz'altro un impulso artistico in quelli che<br />
potevano utilizzare questa tecnica da genio marziano:<br />
una magia nera, una qualità visionaria che li rendeva<br />
capaci di scartare gli stantii schemi dei migliori cervelli<br />
del pianeta e concepire un nuovo algoritmo totalmente<br />
inaspettato.<br />
E quanto accadde con il programma di conversione<br />
da binario a decimale. Si trattava di una subroutine -<br />
cioè di un programma contenuto in un altro programma<br />
che poteva essere richiamato, quando necessario, da<br />
dentro molti programmi differenti - per tradurre i numeri<br />
binari elaborati dal computer in normali numeri del<br />
sistema decimale. Citando le parole di Saunders,<br />
questo problema divenne "la prova del nove del<br />
programmatore: se eri in grado di scrivere un<br />
programma di conversione al sistema decimale che<br />
funzionasse, sapevi abbastanza di computer per poterti<br />
definire, a buon diritto, un programmatore". E chi<br />
avesse scritto un grande programma di conversione dei<br />
numeri al sistema decimale, avrebbe potuto fregiarsi del<br />
titolo di hacker. Più che una competizione, la messa a<br />
punto definitiva di un programma di conversione al<br />
sistema decimale con il minor numero possibile di<br />
istruzioni divenne una sorta di sacro Graal degli hacker.<br />
Da mesi circolavano varie versioni di programmi di<br />
conversione al sistema decimale. Se qualcuno fosse<br />
stato del tutto a digiuno dell'argomento o totalmente<br />
ottuso - un vero e proprio "laser", un "perdente"* -<br />
avrebbe potuto usare un centinaio d'istruzioni per far<br />
convertire al computer il linguaggio macchina in<br />
decimale. Ma qualsiasi hacker di un qualche valore ne<br />
avrebbe usate meno e, alla fine, adoperando il meglio<br />
dai programmi, ottimizzando un passaggio qui e uno là,<br />
il programma si sarebbe ridotto a circa cinquanta<br />
istruzioni.<br />
Dopo, le cose si fecero serie: c'era gente che<br />
lavorava per ore, cercando una strada per fare la<br />
stessa cosa con il numero minore possibile di righe di<br />
codice. Divenne qualcosa di più di una competizione:<br />
era ricerca. Per quanti sforzi fossero prodotti, nessuno<br />
sembrava in grado di abbattere la barriera delle<br />
cinquanta righe. Qualcuno pose la domanda se fosse<br />
veramente possibile farlo. C'era una soglia oltre la<br />
quale non si poteva accorciare un programma?<br />
Tra quelli che si arrovellavano con questo dilemma<br />
c'era un tipo di nome Jensen, un hacker del Maine, alto<br />
e taciturno che sedeva quietamente nella "kludge room"<br />
e scribacchiava sui tabulati con il contegno sereno di<br />
uno che scortecci un bastone col coltello. Jensen era<br />
sempre in cerca di sistemi per comprimere tempo e<br />
spazio nei suoi programmi: il suo codice era una<br />
sequenza completamente bizzarra di funzioni booleane<br />
e aritmetiche mischiate tra di loro, e spesso usava<br />
computazioni differenti su varie sezioni della stessa<br />
"parola" di diciotto bit. Cose straordinarie, acrobazie<br />
magiche.<br />
Prima di Jensen, il parere comune era stato che<br />
l'unico algoritmo logico per un programma di<br />
conversione al sistema decimale avrebbe voluto far fare<br />
alla macchina ripetute sottrazioni, usando una tabella<br />
delle potenze di dieci per mantenere i numeri nelle<br />
giuste colonne decimali. In qualche modo Jensen capì<br />
che una tabella delle potenze di dieci non era<br />
necessaria; e se ne uscì con un algoritmo capace di<br />
convertire i numeri in ordine inverso, ma, con un<br />
qualche giochetto di prestigio digitale, li buttava fuori<br />
nell'ordine giusto. C'era una complessa spiegazione<br />
matematica della cosa, che fu chiara agli altri hacker<br />
soltanto quando videro il programma di Jensen<br />
appiccicato su una bacheca, il suo modo per dir loro<br />
che aveva valicato il limite del programma di<br />
conversione al sistema decimale: quarantasei<br />
istruzioni. Fissarono tutti il codice a bocca aperta.<br />
Marge Saunders ricorda che gli hacker furono<br />
stranamente calmi nei giorni successivi.<br />
"Avevamo capito che l'argomento era chiuso," disse<br />
più tardi Bob Saunders, "quello era il Nirvana".<br />
I computer possono cambiare la vita in meglio<br />
Questo principio era solo sottilmente manifesto.<br />
Difficilmente un hacker avrebbe dato a un estraneo una<br />
panoramica della miriade di vantaggi forniti dai<br />
computer nell'aprire le vie della conoscenza.<br />
Eppure questa premessa dominava il comportamento<br />
quotidiano degli hacker del Tx-0, e quello delle<br />
generazioni di hacker venute dopo la loro.<br />
Sicuramente il computer aveva cambiato le loro vite,<br />
le aveva arricchite, aveva dato loro un perno su cui<br />
ruotare, le aveva rese avventurose. Li aveva resi<br />
padroni di una porzione del loro destino. Peter Samson<br />
dice oggi: "L'abbiamo fatto dal 25 al 30 percento per<br />
l'amore di farlo, perché era qualcosa che potevamo fare<br />
e fare bene, e al 60 percento per amore di avere<br />
qualcosa che fosse a suo modo vivo, figlio nostro, che<br />
avrebbe cominciato a camminare da solo quando noi<br />
fossimo scomparsi. E questo che rende grande la<br />
programmazione, il fascino magico che possiede... Una<br />
volta risolto un problema di errato comportamento del<br />
computer o del programma, l'hai risolto per sempre, e<br />
tutto ti appare esattamente come lo avevi immaginato".<br />
Come la lampada dì Aladino, potevi farle realizzare i<br />
tuoi desideri.<br />
Sicuramente tutti avrebbero potuto trarre beneficio<br />
sperimentando questo potere. Sicuramente tutti<br />
avrebbero potuto trarre beneficio da un mondo basato<br />
sull'elica hacker. Questa era l'intrinseca convinzione<br />
degli hacker che hanno irriverentemente dilatato il<br />
punto di vista convenzionale su quello che i computer<br />
avrebbero potuto e dovuto fare: guidando il mondo<br />
verso un modo nuovo di considerare e interagire con i<br />
computer.<br />
Non fu facile. Perfino in un'istituzione così avanzata<br />
come il MIT, alcuni professori consideravano frivola e<br />
persine demenziale una spiccata attrazione per i<br />
computer. Bob Wagner, un hacker del TMRC, una volta<br />
si trovò a dover spiegare a un professore d'ingegneria<br />
cosa fosse un computer. Bob Wagner sperimentò<br />
questo scontro tra procomputer e anticomputer ancor<br />
più vivamente quando si trovò in un corso di analisi<br />
numerica nel quale il professore richiedeva a ogni<br />
studente di eseguire i compiti utilizzando calcolatrici<br />
elettromeccaniche che solo dal rumore sembrano<br />
lerrovecchi. Kotok era nello stesso corso, ed entrambi<br />
erano sgomenti alla prospettiva di lavorare con quelle<br />
macchine obsolete. "Perché dovremmo," chiesero, "se<br />
abbiamo questo computer?"<br />
<strong>Capitolo</strong> <strong>1°</strong> - <strong>Storia</strong><br />
Così Wagner cominciò a lavorare su un programma<br />
che avrebbe emulato il comportamento di un<br />
calcolatore. L'idea era scandalosa e per qualcuno era<br />
un'indebita appropriazione di prezioso tempo-macchina.<br />
Secondo la mentalità di quel periodo a proposito di<br />
computer, quel tempo era così prezioso che si potevano<br />
solo tentare imprese che usassero al meglio la<br />
macchina, imprese che avrebbero richiesto una<br />
quantità enorme di matematici impegnati per giorni in<br />
calcoli noiosi e ripetitivi. Gli hacker la pensavano<br />
diversamente: qualsiasi cosa sembrasse interessante o<br />
divertente era pane per l'informatica e potevi agire in<br />
base a quel principio, usando computer interattivi,<br />
senza che qualcuno ti spiasse da dietro le spalle e ti<br />
chiedesse di rendere conto del tuo progetto specifico.<br />
Dopo due o tre mesi di lotte nell'intricato groviglio<br />
dell'aritmetica a virgola mobile (necessaria per<br />
consentire al programma di sapere dove collocare la<br />
virgola decimale) su una macchina che non era dotata<br />
di un metodo semplice per eseguire moltiplicazioni<br />
elementari, Wagner aveva scritto tremila righe di codice<br />
che eseguivano il lavoro. Aveva fatto svolgere a un<br />
computer incredibilmente costoso la prestazione di un<br />
calcolatore che costava mille volte di meno. In onore di<br />
questo paradosso, chiamò il programma Expensive<br />
Desk Calculator [calcolatore da tavolo costoso] e<br />
orgogliosamente lo impiegò per fare il suo compito.<br />
Il suo voto: zero. "Hai usato un computer!" fu il<br />
commento del professore. "Questo compito non può<br />
essere giusto."<br />
Wagner non provò neanche a dare spiegazioni.<br />
Come avrebbe potuto spiegare al suo insegnante che il<br />
computer stava trasformando in realtà quelle che una<br />
volta erano state solo incredibili possibilità? O che un<br />
altro hacker aveva addirittura scritto un programma<br />
chiamato Expensive Typewriter [macchina da scrivere<br />
costosa] che trasformava il Tx-0 in qualcosa in grado di<br />
scrivere testo, elaborare il documento in righe di<br />
caratteri e stamparli sul Flexowriter... potreste<br />
immaginare un professore che accetta un compito in<br />
classe scritto con il computer? Come poteva quel<br />
23