Dopo la fine della guerra, la neonata IBM commissionò la
costruzione di uno dei primissimi computer “pubblicamente
conosciuti”, il Mark I, che fu realizzato presso
l'università di Harvard. Questo computer era ancora
essenzialmente meccanico, con circa tremila relé che
controllavano ruote dentate e contatori, conferendo alla macchina
dimensioni veramente notevoli; il problema delle dimensioni dei
computer, come si vedrà in seguito, poté essere
risolto solo con molti decenni di ricerca e con l'avvento dei
computer quasi completamente elettronici.
ENIAC, ad esempio, fu il primo computer a minimizzare la
componente meccanica. Commissionato dall'Esercito degli Stati Uniti
durante la guerra per velocizzare complessi calcoli balistici,
entrò in funzione solo nel '44 e subì continue
revisioni per tutto il biennio '45-'47 prima di entrare
effettivamente in attività. L'innovazione più grande
fu la sostituzione dei meccanismi di calcolo con valvole, che
avevano una velocità di molto superiore a quella delle ruote
dentate (si pensi che Mark I poteva moltiplicare due numeri di 23
cifre in circa 6 secondi, mentre ENIAC era in grado di effettuare
nell'arco di un solo secondo ben trecento moltiplicazioni simili);
la nuova macchina inoltre possedeva dimensioni realmente
“mostruose”, coprendo ben 180 m2, con
diciottomila valvole e seimila interruttori. Nonostante la bassa
affidabilità (ENIAC si rompeva ogni poche ore a causa del
calore sprigionato, rendendo necessaria una squadra di tecnici
sempre all'erta e pronta a intervenire), nessun computer costruito
nell'“epoca ENIAC” (ovvero dalla sua entrata in
funzione fino al suo spegnimento definitivo alla metà degli
anni '50) riuscì a raggiungerne la velocità di
calcolo.
Fotografia di una parte di ENIAC.
ENIAC soffriva però di un problema: era sì
programmabile nel senso moderno del termine, ma solo modificando la
disposizione di un grande numero di fili collegati a uno dei suoi
pannelli; programmare ENIAC era una questione non solo di algoritmi
ma anche di saldature e collegamenti elettrici, rendendo
l'operazione molto difficoltosa. L'ingresso e l'uscita dei dati
avveniva invece su schede di carta perforate. Fu un grande passo in
avanti dunque l'architettura a programma e dati registrati
insieme; l'origine di questo tipo di architettura è
controversa: essa è contenuta in una bozza di rapporto
scritta da John von Neumann nel '45 (e per questo è spesso
indicata impropriamente col termine di architettura di von
Neumann) pure se von Neumann non fu l'unico ideatore di questa
innovazione che fu in realtà realizzata dalla squadra di
lavoro dell'elaboratore EDVAC (ed anche molti altri studiosi, tra
cui Konrad Zuse stesso, affermarono di aver avuto idee simili
all'epoca). é molto probabile che sia davvero accaduto che
molte persone siano giunte a una stessa conclusione
contemporaneamente (è già accaduto molte volte nella
storia dell'informatica), e come in molte altre occasioni è
spesso più interessante per l'implementatore di un sistema
l'innovazione stessa piuttosto che l'individuazione esatta del suo
autore.
Uomini alla console e all'unità nastro di EDVAC, il
primo computer progettato secondo l'architettura di von
Neumann.
|
Indipendentemente da ciò, le innovazioni principali del
rapporto di von Neumann, basato sul computer EDVAC che egli aveva
contribuito a costruire, diventeranno parte del patrimonio comune
dei progettisti di computer: non solo l'ingresso dei programmi
insieme ai dati su schede perforate, ma anche l'invio di più
bit (stati logici 1 oppure 0) in contemporanea,
anziché uno dopo l'altro come nei computer precedenti, e
l'uso della memoria interna non solo per registrare i dati parziali
e finali delle operazioni da compiere ma anche le operazioni
stesse, rendendole facilmente modificabili.
Con questa innovazione, siamo definitivamente entrati nella
prima generazione dello strumento informatico. Con l'architettura
di von Neumann affermatasi come “standard” di
realizzazione (e lo rimarrà fino ai nostri giorni: i moderni
computer sono tutti basati sulle idee dell'architettura di von
Neumann), iniziò un processo di innovazione serratissimo che
non si interromperà più.
I computer della prima generazione sono pochi e costosi,
costruiti soprattutto dalle università che vedono
così aumentare il proprio prestigio, e più raramente
usati anche da altri soggetti (tra cui spiccano soprattutto gli
enti governativi americani), insieme ai primi accenni di
“industrializzazione” dell'informatica. I computer
dell'epoca erano costruiti principalmente con valvole; la struttura
dell'unità centrale non aveva una separazione tra logica di
governo della macchina e le altre funzioni; in particolare non
aveva una logica di governo separata per le periferiche esterne (il
che voleva dire che il computer, per fare un'operazione come
leggere un dato da una scheda, doveva fermare tutte le altre
operazioni che stava facendo e attendere fino all'arrivo del dato).
I dati venivano inseriti “a lotti”; questi ultimi
venivano elaborati completamente e poi restituiti. Un computer di
questo tipo poteva eseguire una sola istruzione per volta, e
soffriva del limite indicato sopra relativo alla logica di governo,
un problema che piagherà i computer ancora per molto tempo
(si consideri però che questi primi computer, essendo i
primi, erano dei veri e propri “prodigi” di ingegno e
tecnologia, veri pionieri in un campo scientifico che aveva appena
cominciato ad esistere).
Molte società decisero di iniziare la costruzione di
computer, intravvedendo nel neonato settore un mercato
completamente nuovo e quindi denso di profitti. Leader di mercato
era Remington-Rand, una ex azienda di macchine da scrivere che
aveva progettato e costruito il modello UNIVAC (che verrà
per tutti gli anni '50 associato all'idea di “computer”
dalla popolazione americana, come in Italia si associa la parola
“kleenex” ai fazzoletti di carta), il quale divenne
famoso agli occhi dell'opinione pubblica per aver previsto, facendo
le proporzioni sul 7% dei voti, la sconfitta di Eisenhower alla sua
seconda candidatura in diretta sul canale televisivo CBS. Altre
aziende dell'epoca erano IBM, nata nel 1924 dalla fusione della
compagnia di Hollerith con altre, che produceva un'intera gamma di
sistemi, e la Compagnie des machines Bull, che produceva
macchine come la serie Gamma. Non era ancora nato un concetto vero
e proprio di software: la macchina non era altro che una
gigantesca, rapidissima calcolatrice, e veniva usata spesso in modo
un po' “empirico”; erano necessarie competenze tecniche
molto ampie per effettuare lavori tutto sommato molto limitati, e
ancora non si erano intuite le potenzialità del calcolatore
in ambiti che non fossero il calcolo.
John Backus, progettista principale del Fortran.
|
Uno dei problemi più “pesanti” per un
programmatore era di dover obbligatoriamente creare programmi nel
linguaggio macchina, ovvero con l'insieme di istruzioni
comprese dalla circuiteria interna dell'apparato, indicate tramite
numeri scritti in base 2 (“binari”); tutta la gestione
della macchina era delegata al programma, dalla gestione degli
apparati di ingresso dei dati, all'elaborazione, al posizionamento
dei dati in memoria, all'uscita. Fu così una forte
innovazione la creazione, nel '57, del FORTRAN (“Formula
Translator”), che possiamo considerare come uno dei
primissimi linguaggi di programmazione cosiddetti di alto
livello, ovvero costituiti da istruzioni scritte in una
“lingua” artificiale che, nel caso specifico di questo
linguaggio, ricalcava la simbologia matematica (e infatti il
linguaggio Fortran fu espressamente scritto per la realizzazione di
programmi che risolvessero problemi di calcolo scientifico) e che
dunque non richiedesse una completa conoscenza della macchina per
essere usata. Un programma fornito a parte, detto
compilatore, avrebbe letto il codice sorgente
scritto in quel linguaggio e lo avrebbe interpretato, fornendo in
uscita il codice compilato nella “lingua” originale
della macchina. Fortran, come più tardi anche Cobol, ebbero
un impatto straordinario iniziando la riduzione dei “tecnici
in camice bianco” e creando la moderna figura del
programmatore, separato dal progettista e/o dall'esecutore del
programma. Fortran fu il frutto di un progetto di IBM iniziato
partendo dalle idee di John Backus, creatore insieme al suo collega
Naur di un formalismo noto come BNF, Backus-Naur form, una
simbologia che consente di descrivere rapidamente la grammatica di
un linguaggio (naturale o, più spesso, artificiale come i
linguaggi di programmazione). Una curiosità per sottolineare
l'importanza del lavoro di Backus: quando, per raggiunti limiti di
età, quest'ultimo dovette andare in pensione, l'IBM gli
regalò una splendida villa sulla baia di San Francisco e lo
pagò a vita per studiare qualsiasi argomento preferisse, a
patto che però egli non lavorasse per nessuno dei loro
concorrenti.