11 gennaio 2012

La nascita del Personal Computer

Inizio l’anno con un post scritto a quattro mani per il Carnevale della matematica #45 ospitato da Annarita Ruberto sul blog Matematic@mente
Il tema scelto per il carnevale è: "Teoria della computazione, storia del pc e dintorni"; quindi, come avrete intuito dal titolo, parliamo di informatica. 
Ebbene, ne è uscito un post un po' lungo, ma ne consigliamo la lettura soprattutto ai giovani e ai giovanissimi affascinati dai computer!


La mia informatica:
Il mio primo contatto con l'informatica risale alla scuola superiore: le lezioni di informatica e, a volte, il PC di qualche amica con Windows 3.1, che ci permetteva di scrivere le tesine.
Windows 3.1 - Immagine tratta da Wikipedia.
A casa, invece, utilizzavo la macchina da scrivere. Ho avuto il mio primo computer nel luglio 1997, avevo 19 anni. Era un Olidata; l’ho atteso per settimane: Windows '95 ed un programma di riconoscimento vocale erano le novità che non vendevo l'ora di provare.
Windows 95 - Immagine tratta da Wikipedia.
Le mie conoscenze erano piuttosto limitate: a scuola si programmava prevalentemente in Turbo Pascal e non ne comprendevo il fascino.
Ho imparato ad utilizzare il PC praticamente da sola: all'inizio ne avevo un timore reverenziale, la paura che il tasto sbagliato facesse sparire qualcosa. Ricordo ancora quando ho registrato 120 frasi con la mia voce, solo per fare in modo che il programma di riconoscimento vocale mi comprendesse... Volevo qualcuno che scrivesse al posto mio, ero troppo lenta! Le istruzioni dicevano: "Registrare le frasi e lasciar elaborare i dati al computer senza toccarlo". L'ho lasciato elaborare i dati per una notte intera... perché vedevo una lucina rossa accendersi e spegnersi e le istruzioni dicevano di non toccarlo! Purtroppo è stato un lavoro inutile: in quel periodo i programmi di riconoscimento vocale non funzionavano molto bene.
Poi ho iniziato a sperimentare: infondo, anche se avevo fatto sparire qualche programma, il PC non si era rotto e quello che mi serviva era sempre lì! Una volta ho cercato di cancellare il contenuto di un CD: le ho provate tutte, anche i comandi da MS-DOS! Naturalmente non ha funzionato! Era il primo CD con cui avevo a che fare e pensavo funzionassero come i floppy!
Mi piace e mi piaceva utilizzare il PC ma, come vi dicevo, non ho mai capito il fascino della programmazione, fino a quando non ho conosciuto Max. Lascio la parola a lui.

L'informatica vista con gli occhi di un programmatore:
Fin da quando ero piccolo ho sempre avuto la passione per la tecnica e la tecnologia. Elettronica, meccanica... ma non avevo mai avuto un computer. A 8 anni avevo già deciso che avrei studiato elettronica. Scelsi di frequentare l'ITIS ed in prima superiore scoprii i computer: dei fiammanti PC IBM 8086 con monitor CGA da 14 pollici, due floppy da 3.5", nessun disco fisso e 640Kb di memoria. Era il 1990.


Cominciai a seguire le lezioni che ci insegnavano l'uso del computer, il DOS, il Pascal, il BASIC, il Lotus 1-2-3
Lotus 1-2-3 - Immagine tratta da Wikipedia.
Compresi presto che, se l'elettronica mi aveva sempre appassionato, i computer mi appassionavano 10 volte tanto! Con l'elettronica puoi progettare e creare circuiti, oggetti, gadget... Ma è un processo lento, laborioso, costoso... Con i computer è diverso, tutto quello che serve è li, davanti a te, dentro una scatola. Hai potenzialità infinite, è solo questione di tempo. Tutto è documentato, basta trovare il manuale giusto.
Il bello dei computer è che, volendo, puoi controllarne ogni singola parte. Puoi fargli fare quello che vuoi, se sei bravo.
Volevo conoscerli, volevo capirli, volevo sviscerare ogni loro più piccolo segreto.
Il mio computer doveva fare quello che dicevo io, quando lo dicevo io e come decidevo io :-).
Padroneggiare completamente il mio computer, questo era l'obiettivo che mi prefissai in prima superiore, mentre la Prof. di fisica ci illustrava le basi del DOS e dell'informatica.
Continuai a studiare elettronica: ho sempre pensato che sia un'ottima base per comprendere appieno il funzionamento dei computer, del resto, sono ben fatti di componenti elettronici, no?
Ogni tanto incontro programmatori che non sanno come funziona un computer da un punto di vista elettronico... Nel 1990 mi sarebbe sembrato inconcepibile: come puoi pretendere di controllare qualcosa che non conosci almeno al 100% ? :-)
Ma oggi il modo è cambiato... Come è d'uso dire, "C'erano tempi in cui l'informatica era una scienza per tecnici col camice bianco", quelli erano tempi in cui cambiavi un bit e sapevi cosa succedeva. Cambiare un bit è un po' come cambiare un numero da 1 a 0, od accendere spegnere un interruttore; in sostanza cambi un "parametro" del computer ed ottieni un effetto noto e documentato. Ora la complessità è aumentata: se nel 1990 un computer eseguiva un solo programma per volta, oggi un qualunque computer ha in esecuzione, sempre, almeno diverse decine di programmi, più o meno indipendenti tra loro.
Conoscere e capire i Personal Computer nella loro interezza è sempre possibile, sebbene oggi siano un po' più complessi di 20 anni fa. Tuttavia la quantità e la tipologia di programmi oggi disponibili è talmente elevata che è improbabile riuscire a conoscere "tutto" di un computer. Esistono tanti sistemi operativi, milioni di software ed una quantità incredibile di programmatori e progettisti che, ogni secondo, creano nuovi programmi, nuove funzioni, nuove logiche, nuovi servizi... Sapevate che ogni giorno vengono create oltre 500 nuove applicazione per iPhone?
Ma il vecchio sogno di un ragazzino di 20 anni fa è sempre vivo. Coltivare la stessa passione per venti anni aiuta capire, ad approfondire, a trovare un metodo, un sistema per studiare i problemi e per affrontarli, con cognizione di causa. Non si può sapere "tutto" dell'informatica, ma si possono accumulare le basi e gli strumenti per poter risolvere le problematiche che si verificano... e per affrontare le sfide che ci si pongono.
È il bello dell'informatica, è un mondo sconfinato, dove chiunque, investendo del semplice "tempo" può "creare" "cose", per se o per gli altri.
Ho studiato come funzionano i computer, ho creato programmi, ho creato siti... e la voglia di continuare ad imparare e produrre cose nuove non accenna a diminuire. Posso creare un simulatore di volo tridimensionale, posso creare un software che gestisce i dati di 10'000 persone, posso creare un nuovo sito online, posso creare... posso!
Ecco "Mandy 3DDD", un vecchio simulatore di volo tridimensionale che ho realizzato 15 anni fa, ai tempi dell'università; il paesaggio che si vede è il frattale di Mandelbrot renderizzato in 3D in tempo reale.
Ma ora vediamo come è nato l'oggetto che ha reso possibile tutto questo: il Personal Computer.


Dal Computer al Personal Computer:
Sembra incredibile che prima degli anni 80 non ci fossero i Personal Computer che ora hanno rivoluzionato il nostro modo di lavorare, di comunicare e di vivere.
L’informatica come la conosciamo oggi, è nata negli anni 80 del secolo scorso grazie ad un gruppo di giovani che hanno fatto del loro hobby un business; è nata per caso, nei garages della Silicon Valley, a sud di San Francisco, in California.  Ragazzi che, grazie alla passione per la tecnologia, hanno avviato una rivoluzione.
Mainframe - Immagine tratta da Wikipedia.
I primi computer, infatti, erano molto grandi come i mainframe di oggi. Questo a fianco è un mainframe del 1964: ciascuna di queste cabine serviva a comporre il computer; in passato erano tutti di queste dimensioni, occupavano stanze intere. Era un po’ difficile averne uno personale!


Oggi ne abbiamo cinque nel nostro soggiorno e vi sfidiamo a vederli tutti con un colpo d’occhio. 






I dati andavano inseriti utilizzando un linguaggio binario, costituito solamente da 0 e da 1.
  0 = 0000 0000
  1 = 0000 0001
  2 = 0000 0010
  3 = 0000 0011
  4 = 0000 0100
  5 = 0000 0101
  6 = 0000 0110
  7 = 0000 0111
  8 = 0000 1000
  9 = 0000 1001
10 = 0000 1010
...
...
...
254 = 1111 1110
255 = 1111 1111 (usando 8 bit si può comporre 1 byte, quando tutti i bit valgono 1 allora il valore espresso dal byte è 255)

Pensate che per scrivere in codice binario 2012 si devono usare 16 cifre (ossia 16 bit, cioè 2 bytes), ovvero:
0000 0111 1101 1100


Addizione:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10


Sottrazione:
0 - 0 = 0
1 - 0 = 1
1 - 1 = 0
0 - 1 = 1
I numeri negativi, nel codice binario, sono gestiti col cosiddetto "complemento a due": in questo caso caso un byte (composto da 8 bit) potrà assumere valori compresi tra -128 e + 127.


Moltiplicazione:
0 x 0 = 0
0 x 1 = 0
1 x 0 = 0
1 x 1 = 1


Divisione:
0 : 0 = 0
0 : 1 = 0
1 : 0 = 0
1 : 1 = 1

L’inserimento dei dati era piuttosto complesso: bisognava inserire le istruzioni, sempre in codice, per indicare al computer cosa fare con quei dati ed in che ordine. Per inserire le istruzioni era necessario alzare o abbassare delle levette oppure inserire le istruzioni utilizzando delle strisce o delle schede perforate.
Inoltre ogni computer utilizzava un suo linguaggio, era indispensabile trovarne uno uguale per tutti. Uno dei primi linguaggi di programmazione, il COBOL fu inventato (1959) da una donna, Grace Hopper. Un linguaggio per computer utilizza parole inglesi che il computer trasforma automaticamente in un codice binario, composto da una serie di istruzioni e dati da elaborare. Altri linguaggi di programmazione  nati in quegli anni furono Fortran (1957) ed il BASIC (1964 )che hanno reso più semplice l'uso del computer.

I primi computer erano molto lontani da quello che oggi è un Personal Computer. Come dicevamo, occupavano grandi stanze con l'aria condizionata: pensate a quanto calore produce un normale PC acceso, immaginatevi quanto ne potevano produrre questi! Erano utilizzati principalmente dalle compagnie assicurative, dalle compagnie telefoniche e dalle banche. 
La gente comune non trovava alcun interesse in queste gigantesche macchine, ma i nerds [1] le trovavano estremamente affascinanti. Programmare permette di far eseguire rapidamente alla macchina un'idea e di darti un risultato, una risposta. Gli appassionati avrebbero voluto dei computer personali ma le dimensioni enormi, ed i costi, non lo rendevano possibile. Era indispensabile miniaturizzare: per creare un computer servivano migliaia di valvole e ogni valvola misurava diversi centimetri. Inoltre si bruciavano spesso: c'erano, quindi, armadi pieni di valvole e tecnici pronti a correre per sostituirle in caso di guasto.[2]
L'invenzione dei transistor consentì di ridurre le dimensioni, si passò da alcuni centimetri per ogni valvola, ad alcuni millimetri per ogni transistor. Tuttavia ne servivano comunque migliaia: bisognava miniaturizzare ancora...
Un processore Intel C8080A - Immagine tratta da Wikipedia.
Quello nell'immagine è un chip (Intel 8080), il microprocessore che ha permesso a un gigantesco mainframe di entrare in un computer che può stare sulla vostra scrivaniaIl chip Intel 8080 ha sostituito le migliaia valvole dei mainframe con migliaia di transistor miniaturizzati. Alla base di questa innovazione c'è il silicio. Questo è il segreto dei personal computer ed è il motivo per il quale la Silicon Valley si chiama così e non, ad esempio, Computer Valley. Intel è l'azienda che ha inventato il microprocessiore ma non ne comprese da subito le potenzialità, ritenendolo adatto per i semafori e per rendere più potenti le calcolatrici. 



L'idea di utilizzare un chip per creare un computer venne a Ed Roberts, un ex ufficiale dell'aviazione. Come molti altri pionieri del Personal Computer, Ed Roberts costruì il suo computer solamente perchè voleva averne uno con cui "giocare".
L'ex ufficiale creò un kit, che doveva essere montato direttamente dall'acquirente, che consentiva di assemblare un piccolo computer: era nato l'Altair 8800, ne fu dato l'annuncio nel gennaio del 1975 su Popular Electronics.


Il problema era: cosa farci con questi computer? Erano formati semplicemente da un pannello con degli interruttori (bit in ingresso) e delle luci che si accendevano (bit in uscita); non c'era il posto per connettere una tastiera, un monitor o una stampante! Non ci si poteva fare nulla di quello cui siamo abituati. 


I Nerds erano, naturalmente, entusiasti di questo nuovo oggetto e formarono dei club per parlare di questa novità: uno di questi era l'Homebrew Computer Club che si riuniva ogni mercoledì sera in una stanza affittata presso l'Università di Stanford, nella Silicon Valley. Molte delle persone che vi partecipavano lavoravano nell'industria elettronica, alcuni erano dei laureati in fisica e c'erano anche molti radio amatori. L'Altair era noioso da usare: l'unico modo per fornirgli delle istruzioni era muovere gli interruttori verso l'alto o verso il basso; ma era comunque interessante e, per un nerd, si prestava a molti esperimenti. Uno dei primi, fu quello che consentì di "suonare" una melodia su una radio. Come? Semplice: creando nell'Altair un programma con dei cicli di istruzioni ripetitive in grado di creare delle interferenze elettromagnetiche;  queste venivano "recepite" da una radiolina posta vicino al computer. Usando dei cicli della lunghezza appropriata era così possibile creare delle note e, quindi, una melodia, che si sentiva su un altoparlante... Un precursore dei sintetizzatori :-)
Era probabilmente la prima cosa concreta che un Altair riusciva a fare! L'entusiasmo fu davvero grande.
Serviva ora un linguaggio di programmazione in grado di semplificare le cose, come quelli dei grandi mainframe, come il BASIC. Il principale problema era che per funzionare avevano bisogno di una memoria troppo grande per essere inserita nel piccolo Altair.
Paul Allen e Bill Gates scrissero una versione del Basic per l'Altair: potremmo quindi dire che iniziò così la storia della Microsoft. Il Basic rese possibile l'uso dell'Altair sia per divertimento che per lavoro. Attaccarono dei terminali ai computer e iniziarono a scrivere programmi per giochi, programmi per scrittura, programmi di calcolo e gestionali.
Lo sviluppo tecnologico fu estremamente rapido perchè in quegli anni c'era una forte tendenza a condividere le conoscenze e le informazioni. 


Alle riunioni dell'Homebrew Computer Club parteciparono anche Steve WozniakSteve Jobs: per impressionare i loro amici alle riunioni del club, vollero creare anche loro un computer. Nel 1976 fondando la Apple Computer. Per finanziarsi, Jobs vendette il suo pulmino Volkswagen e Wozniak la propria calcolatrice [3]. La prima sede della nuova società fu il garage dei genitori: qui lavorarono al loro primo computer, l'Apple I. Nonostante fosse molto più semplice dell'Altair, riuscirono a venderne 50 esemplari ai membri dell'Homebrew Computer Club. Questo dette a Jobs l'entusiasmo per lavorare alla costruzione di un vero personal computer: Apple II. Il suo sogno sembrava impossibile: troppi chip rendevano il computer complicato e costoso da costruire; ma Wozniak riteneva che si potesse fare: unendo i chip del computer con quelli del monitor della TV scoprirono che si poteva programmare il computer per generare segali colorati sullo schermo, ma anche dati, parole o giochi. 
Servivano i capitali e il giovanissimo Steve Jobs li ottenne dall'uomo che aveva fondato l'Intel: Arthur Rock; in questo modo riuscirono a realizzare l'Apple II e ne fecero produrre 1000 esemplari.  Wozniak e Jobs misero tutta l'elettronica in una scatola di plastica dotata di monitor e tastiera dando forma al personal computer che utilizziamo attualmente! Fu presentato il 16 aprile 1977 alla Fiera del computer della West Coast di San Francisco negli Stati Uniti e messo in commercio il 6 giugno 1977.
Apple II - Immagine tratta da Wikipedia.

Passarono solo pochi anni dall'Altair all'Apple II e, come potete vedere dalle immagini, le cose cambiarono davvero moltissimo! Gli anni successivi la Apple crebbe tantissimo.
Era una compagnia molto giovane: i fondatori erano appena ventenni e alcuni lavoratori erano persino più giovani: Chris Espinosa ad esempio aveva solo 14 anni! Si recava al lavoro alle tre del pomeriggio, dopo la scuola e non ha mai lasciato la Apple!

Che altro dire? La storia del Personal Computer ci parla di sogni da seguire, di condivisione delle informazioni e di giovani che mettono in campo il loro entusiasmo e le loro energie. Ci sarebbe davvero bisogno di una storia così in questi tempi moderni. Quindi: seguite i vostri sogni, perché non si sa mai dove vi possono portare!

Tania Tanfoglio e Massimiliano Ferrari


Note:
Fonte delle informazioni utilizzate per la realizzazione del post: documentario The triumph of nerds.
[1] Negli anni Novanta il concetto di "nerd" iniziò ad avere delle connotazioni positive nell'ambito della società della rete e dei tecnici dei computer, per descrivere orgogliosamente una persona tecnicamente preparata. Per estensione si iniziò a parlare di nerd anche in relazione a chi aveva avuto un successo finanziario in quei campi. Tratto da Wikipedia.
[2] Curiosità: un errore in un programma viene comunemente detto "bug", ossia "insetto" in inglese. L'usanza di utilizzare questo termine, risale ad un episodio del 1947: un insetto, infilandosi nei circuiti di un computer a valvole, ne causò, infatti, un effettivo malfunzionamento!
[3] Fonte: Wikipedia