Gli anni '60 sono un punto focale nella storia dell'informatica;
molti dei concetti-base dell'informatica di oggi nascono proprio in
questo periodo, e sempre in questo periodo inizia quella spinta
verso l'allargamento del mercato che porterà all'inizio
degli anni '80 l'informatica a diventare "al
dettaglio" e abbordabile a piccole aziende e singoli
individui.
Immagine xii - Un particolare di un calcolatore della famiglia
System/360 di IBM
Nella seconda metà degli anni '60 iniziarono o si
svilupparono moltissimi progetti, linguaggi, concetti. Nel '64
nasce BASIC, uno dei primissimi "linguaggi didattici"
che sarà banco di prova per moltissime "nuove
leve" della programmazione, ed esce System/360, una linea di
macchine di IBM che per la prima volta coniuga sia le esigenze
degli utenti scientifici che quelle dell'utenza business; nel '65
esce il PDP-8, il primo vero minicomputer non più
grande di un armadio, e inizia il lavoro su un progetto, denominato
"Multics", sponsorizzato da ARPA (l'agenzia per i
progetti avanzati, legata al Dipartimento della Difesa americano),
per realizzare un sistema time-sharing standardinzzato (ovvero un
insieme di software di supervisione, hardware e linee di
comunicazione per l'uso comune), in collaborazione con IBM, Bell
Labs., e il Massachuttes Institute of Technology. Nel '67 inizia la
commercializzazione molto "spinta" dei sistemi a
circuito integrato, segnando l'affermazione definitiva della terza
generazione di macchine informatiche.
Sul fronte software, è nel '68 che scoppia una
"bomba" che sarà destinata a rivoluzionare i
metodi di programmazione, e cioé la lettera di E. Dijkstra
pubblicata da Comunicazioni di ACM del marzo di
quell'anno, dal titolo "GO TO Statement Considered
Harmful" ("L'istruzione GO TO è da
considerarsi pericolosa"). che condannava la programmazione
non strutturata esemplificata nell'uso dell'istruzione "GO
TO", l'istruzione di salto non condizionato, il cui uso
sregolato (dovuto all'assenza della possibilità di creare
una struttura nei programmi, isolando le porzioni di codice
accumunate da uno stesso scopo o utili per più programmi)
portava come conseguenza la creazione di codice di difficilissima
comprensione e manutenzione.
La discussione innescata dalla lettera di Dijkstra
porterà alla progettazione di linguaggi come Pascal (creato
da Niklaus Wirth all'Università Politecnica di Zurigo come
linguaggio didattico e poi divenuto diffuso anche in ambienti
"produttivi" specialmente dalla fine degli anni '70),
e il C, linguaggio creato nell'ambito del progetto Unix, iniziato
da Bell Labs.; un tale progetto nacque a causa del ritiro di Bell
dal progetto Multics, che oramai pochissimi credevano sarebbe stato
realizzato nei tempi previsti, e concentrava i propri sforzi
più sulla gestione della macchina da parte di ciascun utente
che sul controllo del lavoro di ognuno di essi, da cui il nome.
Nel '69 ARPA, dalle ceneri del progetto Multics e di altri
progetti ad esso collegati, inizia la costruzione e la
progettazione di ARPAnet, una rete che collegasse tra loro
più centri militari prima, e di ricerca poi; la struttura di
ARPAnet, che sarà simile a quella che poi sarà di
Internet, è fatta in modo tale da consentire all'intera rete
rimanente di funzionare e comunicare anche nel caso cadano uno o
più nodi (utile in caso un attacco nucleare sovietico che
distruggesse una o più intere città).
Immagine xiii - Un PDP-8 di Digital Equipment Corp.; la serie
PDP è stata una tra le più tecnologicamente avanzate
del suo periodo.
Agli albori degli anni '70 abbiamo dunque un mercato molto
vario: i computer, specialmente i minicomputer, si stanno
diffondendo velocemente anche fuori dai centri di calcolo, nelle
aziende di medie dimensioni. Il mercato dei grandi e medi
("mini") computer negli anni '70 entra in una
situazione di equilibrio; il sistema operativo più diffuso
è VMS, il sistema operativo dei DEC, che viene per"
sostituito rapidamente da Unix alla sua uscita. A questo
punt" per" si hanno due spinte all'espansione del
mercato: una, onnipresente, dall'alto delle grandi aziende e dai
centri di ricerca (specialmente universitari) che continuano a
spingere l'innovazione tecnologica e delle metodologie dello
sviluppo; un'altra, dal "basso", ovvero dagli utenti dei computer,
come si vedrà.
Siamo dunque arrivati ad un punto di svolta nella storia dei
computer. Negli anni '60 si realizza un cambiamento epocale: i
computer non lavorano più a lotti di informazioni,
bensi sono interattivi; non eseguono più un
solo programma ma molti; sono anche in grado, da
poco, di comunicare tra loro attraverso reti come ARPAnet. Ma non
sono cambiati solo i computer.
I primi utenti erano principalmente società,
centri di calcolo, professori delle università; ma,
specialmente con l'uscita dei PDP di Digital Equipment Corp., e con
la creazione dei curricola universitari relativi allo studio
dell'informatica, un numero sempre maggiore di studenti
inizi" a "toccare con mano" e sperimentare le
apparecchiature, le teorie e gli strumenti dell'informatica. Le
aziende, i gruppi di ricerca e le università smetteranno a
poco a poco di essere i soli a fornire la domanda al mercato
informatico; piano piano, l'attenzione si sposta più sulle
piccole aziende e sulle singole persone. Ma andiamo con ordine.
Immagine xiv - Fotografia di un Intel 4004. Evidenziata dalla
freccia, la "firma" di Federico Faggin.
Nel 1971 Intel, una società fondata da Gordon Moore e da
altri transfughi di Fairchild Semiconductors, stupisce l'ambiente
informatico producendo, in una joint venture con la giapponese
Busicom, il primo microprocessore commerciale, ovvero un
circuito integrato a larga scala di integrazione (LSI, ovvero con
un elevato numero di microcomponenti) in grado di fare, da
sé, tutto quello che era fatto dai complessi circuiti
dell'unità di governo, ovvero quella parte dei normali
computer che interpreta le istruzioni Ð il
"cervello" di un computer, se vogliamo. Il 4004 fu
progettato da Federico Faggin, un italiano che lavorava appunto per
Intel, e fu protetto con due brevetti che a tutt'oggi appartengono
ancora alla società. L'invenzione del microprocessore fu di
importanza enorme, quanto la prima introduzione del transistor, ed
ebbe effetti simili: riduzione dei costi di fabbricazione e dello
spazio occupato da un singolo computer.
Molte altre poi sono le cose che accadono in questo periodo, non
per" invenzioni (o almeno non invenzioni della stessa
portata del microprocessore), quanto più innovazioni. Prima
di tutto abbiamo un fiorire di idee e implementazioni di linguaggi
strutturati; tra quelli destinati a durare ricordiamo i già
citati Pascal, inventato dal professor Niklaus Wirth del
Politecnico di Zurigo (lo stesso che pubblic" su
Comunicazioni di ACM la lettera di Dijkstra) e C, sviluppato
nell'ambito del progetto Unix di Bell da Ritchie e Thompson.
Secondariamente, nel '73 Donald Knuth inizia a scrivere i
"libri dell'Arte della Programmazione"; ne
scriverà tre che saranno considerati "bibbie",
contenenti molti degli algoritmi-base della programmazione e gli
elementi di base di quella che è possibile considerare la
progettazione del software, elemento inedito nell'ambito
informatico ma che divenne presto di grandissima rilevanza.
Immagine xv - Il nastro su cui è registrato il
primissimo compilatore Pascal.
Si deve considerare che, durante l'ultima parte degli '60 e
l'inizio degli anni '70, era andata aumentando la domanda per i
microcomputer, specialmente tra gli amanti di elettronica non
professionisti e gli studenti di elettronica e informatica; questi
computer all'epoca erano venduti sotto forma di kit da montare (o
già montati con un certo sovrapprezzo) e, pur possedendo una
frazione infinitesima della capacità di calcolo di un
minicomputer dell'epoca, questi "microcomputer"
riuscirono a conquistarsi un mercato, consentendo così alle
aziende produttrici da una parte di "uscire allo
scoperto", trasformando quello che alla fine dei conti era
un lavoro artigianale in uno prettamente più industriale
(solo nel 1974 si avrà il primo "personal
computer" pubblicizzato formalmente, lo Scelbi) e dall'altra
di aumentare sempre più le capacità dei propri
prodotti.
La "rivoluzione" inizia nel 1975, quando una
società, MITS, che aveva iniziato producendo componenti per
razzi ma si era poi specializzata nella produzione di kit di
assemblaggio per computer "amatoriali", propone
Altair 8800, un vero e proprio computer digitale con processore
Intel 8080 (che, ironia della sorte, Intel aveva progettato
principalmente come sistema di controllo per singoli semafori:
ancora non credeva nell'uso del microprocessore come cuore di un
"vero" computer). Il computer non era certo il
massimo, con i suoi 256 byte di memoria volatile (256 caratteri,
l'equivalente di un singolo paragrafo di un libro, una
quantità di memoria risibile già allora), la completa
assenza di qualsivoglia interfaccia a parte una serie di luci e
interruttori sulla parte frontale della scatola, e la progettazione
non particolarmente attenta (il "bus" non era altro
che il prolungamento dei pin dell'8080, e non era stata posta
alcuna cura relativamente all'isolamento di linee con voltaggi
diversi, con la conseguenza non felice che l'Altair andava spesso
in corto circuito); ma vuoi per il prezzo contenuto, vuoi per
l'eccitazione di parecchi semplici appassionati che non avevano mai
potuto provare "dal vivo" un computer, la richiesta
fu enorme. Il giorno dell'annuncio, avvenuto con la pubblicazione
di un articolo sulla rivista Popular Electronics, MITS ricevette
tanti ordini quanti erano stati previsti per un intero mese.
L'Altair fu il primo vero personal computer di massa.
Immagine xvi - Fotografia di un MITS Altair 8800
Sei mesi dopo la concorrenza si fece agguerrita. Un computer
concorrente, l'IMSAI 8080, fu introdotto, già fornito di
tastiera, schermo e unità per floppy disk (che erano
diventati un componente acquistabile a parte per l'Altair). Su
entrambi poteva "girare" il sistema operativo CP/M,
creato l'anno precedente da Gary Kildall. Il presidente di MITS, Ed
Roberts, decise di combattere la concorrenza con armi meramente
commerciali anziché migliorare il prodotto-Altair, una
scelta che ebbe conseguenze disastrose per la sua
società.
Sempre in questo periodo, Roberts fu contattato da due
programmatori dell'area di Boston, William "Bill"
Gates e Paul Allen, che gli proposero di vendere il loro interprete
BASIC per Altair. Dopo alcune disavventure, Roberts e Gates si
accordarono perchè Gates scrivesse (non era infatti ancora
pronto alcun BASIC per l'Altair!) l'interprete BASIC, che venne
scritto in meno di un mese su un PDP-10 che, grazie a un programma
scritto dai due, emulava un 8080. Non appena l'interprete BASIC fu
pronto e apparentemente funzionante, Allen vol" a
Albuquerque con un nastro di carta nella valigia contenente quello
che oggi è l'equivalente di una "copia interna di
sviluppo", assolutamente non sottoposta a alcun genere di
test. Per loro fortuna, l'interprete funzion" senza intoppi,
e, una volta raggiunto da Gates, fond" la
"Micro-Soft", che divenne più tardi
"Microsoft". é possibile affermare che, in un
mondo dove ogni utente che comprava un computer doveva scrivere i
propri programmi, Bill Gates cre", dal niente, il mercato
del software.
Nel frattempo, anche IBM provava a entrare nel neonato mercato,
proponendo il suo primo "personal computer", un
computer di dimensioni abbastanza compatte (ma più grande
dei microcomputer), dotato di mouse e tastiera e mirato al mondo
delle scuole e dell'istruzione; ma il computer, che costava
più di 5000 dollari, fu giudicato da molti come una spesa
eccessiva e inutile, e non ebbe successo.
Immagine xvii - Un computer Xerox con software "Star", il
successore dello Xerox Alto.
Un altro evento di eccezionale rilievo è la creazione del
Centro Ricerche di Xerox a Palo Alto (che diverrà poi
universalmente noto con la sola sigla, PARC, Palo Alto Research
Center). Il PARC fu fondato da Xerox nel 1970 per portare la
società a un livello competitivo nel mercato dei personal
computer, e per farlo decise di assumere non solo tecnici e
ingegneri, ma anche antropologi e filosofi, attirandoli con
un'offerta molto allettante: dieci anni di finanziamenti "al
buio" per qualsiasi progetto avessero voluto portare avanti.
Gli scienziati del PARC sono responsabili, come vedremo, di gran
parte delle tecnologie informatiche odierne nel campo del personal
computing, tanto che già nel 1972 i progettisti del PARC
avevano progettato lo Xerox Alto, un minicomputer che, primo in
assoluto, utilizzava un'interfaccia grafica con la metafora della
"scrivania" e con funzionalità WYSIWYG,
("what you see is what you get", ci" che vedi
è ci" che ottieni), concetti alla base della
stragrande maggioranza del software odierno. Sempre al PARC, da
un'idea di Robert Metcalfe, nasce Ethernet e il concetto di
"rete locale", LAN, contrapposto al concetto di
"rete geografica" (WAN) già introdotto da
ARPAnet. Metcalfe lascerà più tardi il PARC e
fonderà una società, 3Com, appositamente per
commercializzare le proprie soluzioni Ethernet.
Per comprendere quello che successe poi è necessario fare
un breve "passo indietro". Il mondo dell'utenza
informatica dell'epoca èra formato sia dal nucleo originario
(grandi aziende e università), che da studenti e entusiasti,
che avevano avuto un primo contatto con l'informatica nelle
università o attraverso il primo "assalto" dei
microcomputer. Specialmente attorno alle università
più grandi, gruppi di persone con la passione per
l'informatica, che avevano accesso al costoso equipaggiamento
informatico degli atenei (per i più fortunati anche
l'accesso ARPAnet, come al Massachuttes Institute of Technology)
formano i nuclei della prima "comunità
hacker". Nascono vere e proprie "icone" della
"sottocultura hacker", come ad esempio il Jargon
File, una lista di lemmi legati al "gergo" hacker tra
le cui pagine (oggi web: il Jargon File, aggiornato tutt'oggi, si
pu" trovare a http://catb.org/~esr/jargon/) è
possibile trovare moltissime informazioni sulla nascita e l'origine
della "comunità", dell'"etica
hacker".
Immagine xviii - Un Apple I parzialmente assemblato.
Ma torniamo al resoconto dei fatti. Nel '75, Steve Wozniak e
Steve Jobs avevano lasciato gli studi da poco tempo; entrambi
frequentavano l'"Homebrew Computer Club",
un'associazione con sede a Palo Alto. Wozniak era un genio
dell'elettronica, e aveva progettato un computer di fattura
notevole, privo dei difetti dell'Altair: oltre a una progettazione
migliore della piastra madre, possedeva una tastiera e uno schermo,
che l'Altair all'epoca non aveva ancora; ancora meglio, possedeva
una ROM nella quale erano inserite alcune istruzioni che
consentivano al computer di pilotare lo schermo e la tastiera e che
erano eseguite a ogni avvio del computer; nell'Altair, queste
istruzioni dovevano essere inserite manualmente a ogni accensione
del computer. Il processore era un MOS 6502, dal costo di soli
venticinque dollari al pezzo (contro i 179 dollari dell'8080), per
il quale Wozniak aveva scritto un interprete BASIC. Il computer
aveva 8 kilobyte di RAM, metà delle quali veniva occupata,
quando inserito, dall'interprete BASIC, lasciando ai programmi poco
meno di 4 kilobyte.
Wozniak mostrava il prototipo a ogni riunione bisettimanale del
Computer Club. Jobs, che conosceva Wozniak (insieme avevano
progettato il cabinato e l'hardware per il videogioco
"Breakout", della neonata casa produttrice Atari), lo
aiut" prima con l'estetica e con alcuni dettagli della
progettazione, poi gli propose di produrre il computer in serie.
Insieme fondarono una società, Apple Computer Co., il 1
Aprile '76, e, insieme ai loro pochi dipendenti, assemblarono i
primi Apple I nel garage dei genitori di Jobs. L'Apple I fu un
ottimo successo commerciale, specialmente dopo che Wozniak
introdusse un'interfaccia per caricare i programmi da registratori
a cassette (anziché immetterli in memoria tramite la
tastiera, come era necessario fare altrimenti). L'Apple I fu il
primo microcomputer che fosse sufficientemente semplice utilizzare
anche senza alcuna conoscenza elettronica, e uno dei meglio
progettati della sua epoca; nonostante ci", il mercato per
un computer del genere era abbastanza ristretto, limitato solo ad
appassionati di elettronica e di informatica.
Immagine xix - Un Apple II con lettore di dischetti
Nemmeno Wozniak era completamente soddisfatto del livello
raggiunto dall'Apple I. Già durante la sua
commercializzazione aveva iniziato a introdurre nell'interprete
BASIC comandi (ad esempio per la grafica su schermo o l'uso del
colore) che erano per" delle "no-op", ovvero
non avevano alcun effetto. Nel '77 Apple Computer inizi" la
produzione in serie dell'Apple II, che includeva (o avrebbe incluso
nei suoi aggiornamenti successivi) capacità grafiche,
colore, suono, l'interprete BASIC scritto da Wozniak direttamente
all'interno della ROM di avvio (che finalmente eseguiva anche
quelle istruzioni avanzate inserite già nell'Apple I) e la
possibilità di uso di cassette o dischetti da 5 pollici e un
quarto, per i quali Wozniak aveva progettato le unità disco.
L'Apple II e i modelli aggiornati di questo computer furono un
gigantesco successo commerciale, specialmente dopo che Dan Bricklin
e Bob Frankston ebbero realizzato VisiCalc, il primo foglio di
calcolo elettronico della storia, proprio per questa piattaforma,
allargandone il mercato (formato da utenti che lo usavano come
console di gioco e da appassionati) anche al mondo business,
rendendolo non più solo un giocattolo ma anche un utile
strumento di lavoro. Molti indicano l'Apple II come il primo
home computer, ovvero il primo di una serie di computer
venduti nel corso dei tardi anni '70 e fino alla fine degli anni
'80, il cui mercato non era più quello delle grandi
società, ma quello dei singoli individui, famiglie, piccole
società: l'ultimo allargamento del mercato informatico che
ormai poteva raggiungere potenzialmente chiunque.
Di questi anni sono anche i primi negozi di informatica al
dettaglio e le prime fiere informatiche (ad esempio l'Apple II
venne presentato alla primissima West Coast Computer Faire, a San
Francisco). I primi anni '80 videro il fiorire di un mercato che
vide tra gli altri protagonisti, insieme a Apple, anche Atari,
Commodore, Amiga, Sinclair, e che rimarrà tale fino alla
"discesa" dei PC di IBM e al "secondo"
avvento (dopo gli esperimenti di Xerox) dell'interfaccia utente
grafica con l'Apple Macintosh. Ma questo lo si vedrà in
seguito.
Gli anni '70 non sono segnati solamente dall'avvento degli
home computer; sono questi anni in cui fioriscono nuove
idee, alcune di queste veramente rivoluzionarie. Ad esempio, nel
1970 viene pubblicato un articolo di Edward Codd che introduce il
concetto di modello relazionale dei dati, che è
alla base dei moderni database e contribuirà alla quasi
scomparsa dei database precedenti, basati su modelli gerarchici e
reticolari dei dati. Sempre in questo periodo nasce Cray Research,
fondata dal progettista Seymour Cray; in precedenza costui aveva
lavorato per CDC, per la quale aveva realizzato i computer della
serie 6600 (i primi calcolatori ad essere utilizzati per
l'elaborazione delle previsioni del tempo, notoriamente complessa e
esigente in termini di capacità di calcolo), e della serie
7600, la prima serie di calcolatori paralleli. La Cray Research in
quest'anno commercializz" il Cray-1, il primo
supercomputer.
I supercomputer sono una "nicchia" del mercato
informatico che identifica singoli computer dotati di
capacità di calcolo e memorizzazione molte volte maggiori di
quelle di cui sono dotati i sistemi commerciali, e dunque proprio
per questo in grado di risolvere problemi che richiedono calcoli
estremamente complessi in un tempo ragionevole; generalmente si
ritrovano problemi del genere nella meteorologia, nella
progettazione di sistemi meccanici complessi come automobili e
aerei, dove il computer pu" sostituirsi parzialmente alla
galleria del vento simulando il comportamento dell'aria, oppure
analisi biologiche, come il calcolo del comportamento delle
proteine o il lavoro di decodifica dei genomi, che aiutano
immensamente la ricerca genetica e farmacologica. Sempre ad
esempio, al momento in cui scrivo, il computer più potente
del mondo è l'Earth Simulator, un sistema costruito da NEC e
IBM e dedicato esclusivamente a calcoli relativi alla meteorologia
e alle previsioni sismiche.
Immagine xx - Il supercomputer Cray-1
A differenza dei supercomputer moderni, che sono generalmente
"pezzi unici" destinati a usi particolari, il Cray-1
era un supercomputer "generico". Includeva elementi
appositamente progettati per ridurre i tempi morti e velocizzare le
operazioni di calcolo: ad esempio, nessun cavo era più lungo
di quattro piedi (1,2 m) per ridurre il tempo di passaggio dei dati
da un elemento all'altro del sistema; i processori furono per la
prima volta processori vettoriali, ovvero in grado di
eseguire in un solo passaggio una stessa operazione su un gruppo
(vettore) di numeri, in modo tale da rendere l'operazione
più rapida (questo concetto è arrivato solo molto di
recente nei processori per personal computer, dove viene indicato
con la sigla SIMD, Single Instruction Multiple Data, istruzione
singola ma molteplici dati). In un periodo nel quale si parlava
principalmente di kilohertz, il Cray-1 arrivava a 80MHz, in grado
di toccare, in condizioni particolari, i 240 milioni di calcoli al
secondo (uno per ciclo di clock in ciascuno dei tre circuiti di
calcolo separati che possedeva).