
La copertina

Il foglio elettronico spiegato in maniera
tridimensionale

Un IDE per lo sviluppo del software

L'evoluzione dei linguaggi di programmazione

L'evoluzione di un automa cellulare
|
Le
Scienze – Il software
Le
Scienze - numero 195 - novembre 1984 - Lire 3.000
Siamo
nel 1984 e il software sta assumendo quell'importanza industriale
prima relegata alla mera esecuzione di comandi atti all'archiviazione
di informazioni o ai calcoli scientifici.
In particolare il software comincia ad essere considerato
uno strumento per la ricerca e l'implementazione di algoritmi sempre più sofisticati: ad esempio è di quegli
anni il boom dell'Intelligenza Artificiale, nel senso che
ad essa si dedicano sempre più risorse finanziarie e umane.
L'ingegneria del software non esiste ancora (è del 1989
la prima definizione), così che ognuno si "ingegna" a costruire il linguaggio di programmazione
che più gli sembra adatto alla soluzione dei suoi problemi
(ad esempio il LISP per l'AI o il Pascal del prof. Wirth
per la didattica). Questo numero della rivista "Le
Scienze" fotografa lo stato dell'arte per quanto riguarda
gli sviluppi sul software ospitando una lista di contributi
davvero "pesante". Fra gli autori degli articoli
si riconoscono nomi di fama mondiale: ho già accennato a
Niklaus Wirth, seguono Terry Winograd (il guru della comprensione
automatica del linguaggio), Alan Key (che all'epoca lavorava
alla Apple) e Stephen Wolfram (quello
di "Mathematica") più altri meno noti al sottoscritto
ma sicuramente figure dominanti a giudicare dal curriculum
che espongono. Come si diceva l'argomento
è il software. Siamo nel 1984 dove è ragionevole
pensare che moltissima gente non sappia il significato della
parola Software o addirittura non avesse mai visto un calcolatore.
Io stesso prima di iscrivermi all'Università avevo visto
al massimo una calcolatrice! Dopo la definizione (articolo
"Il Software" di Alan Key) si passa al "professore" per eccellenza,
quel Niklaus Wirth che al Politecnico di Zurigo insegna
Pascal, da lui inventato. Wirth è noto, oltre che per il
Pascal, per aver scritto l'opera fondamentale dell'informatica
degli anni '80: "Algorithms + Data Structures = Programs",
dove per la prima volta si è capito l'importanza delle strutture dati e degli algoritmi associati
alla loro manipolazione. Manco a dirlo il suo articolo si intitola "Strutture dati e algoritmi" e si snoda
attraverso una descrizione didattica esemplare di cosa sia
un albero binario e una lista linkata, cioè due delle strutture
dati veramente fondanti di tutta l'informatica moderna.
Il terzo articolo "Linguaggi di Programmazione"
di Lawrence G. Tesler (uno che lavora al progetto del Machintosh
alla Apple) affronta il problema
di cosa siano i linguaggi di programmazione, di come siano
nati e poi evolti e, immancabile, di come sarà il futuro.
Già nel 1984 si era capito che era nell'ereditarietà la
chiave di svolta per la definizione di un linguaggio usabile
e questo grazie ai problemi emersi dalla definizione della
prima interfaccia grafica per personal: quella
appunto del MAC. Fra l'altro la curiosa immagine
di copertina che illustra una sorta di board contenente
disegnini e pentagrammi è un programma!
Non ci credete? Si tratta di "Mandala", un linguaggio
grafico utilizzabile per la descrizione di brani musicali.
"Sistemi Operativi" scritto da Peter J. Denning
e Robert L. Brown si occupa di spiegare in
maniera non troppo tencnica cosa sia un Operating
System e come funzioni. E' curioso come nelle illustrazioni
i dischi siano rappresentati ancora
dai "padelloni" che qualcuno ricorderà equipaggianti
i sistemi mainframe e mini di prima e seconda generazione.
Terry Winograd, esperto in AI, firma l'articolo "Software per lavorare con il
linguaggio". Quella della comprensione del linguaggio
naturale è e rimane una sfida irrisolta nell'ambito della
cosidetta Intelligenza Artificiale. Scartati i primi approcci
che si limitavano semplicemente alla sostituzione della
traduzione della parola,ù si era
capito che sarebbe stato difficilissimo giungere a risultati
concreti come la traduzione automatica. Il linguaggio umano
è immensamente più complesso di quanto si potrebbe a prima
vista pensare e solo recentemente sono stati raggiunti dei
risultati decenti nella traduzione di testi (vedi la traduzione
delle pagine nei motori di ricerca). "Software per
la grafica" di Andreis van Dam mostra come la grafica interattiva stia
diventando sempre più importante per la comunicazione con
il calcolatore. Alcune immagini frattali nell'articolo stupivano
non poco il lettore dell'epoca abituato ad una grafica che
definire "spartana" è decisamente un eufemismo. "Softrare per la gestione
dell'informazione", di Michael Lesk, è forse l'articolo
più tradizionale del pacchetto. Immagazzinare informazioni
e saperle reperire velocemente
è da sempre uno dei compiti del calcolatore, di qualsiasi
dimensione esso sia. Un certo Alfred Z. Spector ci
introduce invece nel mondo del controllo di processo.
Dalla macchina operatrice fino alla centrale nucleare tutto
è controllabile dal software che può fornire, nonostante
le comprenibili pelplessità di delegare ad una macchina
il controllo del ciclo di raffreddamento del nucleo di un
reattore, può aiutare in maniera significativa
il lavoro umano. Forse se averrero lasciato fare ad una
macchina non avremmo avuto una Cernobil! Il mitico Stephen
Wolfram, mitico soprattutto perchè esempio vivente di come
si possa guadagnare dal mettere a frutto una buona
idea, firma "Software nella scienza e nella
matematica". Il nostro buon Wolfram porta acqua al
suo mulino spiegando che se tu, matematico, vuoi fare ricerca,
allora devi dare alla sua società una parte (non insignificante)
del tuo badget per comprare le licenze del software o magari
addirittura una scheda da infilare nel PC per avere tempi
di calcolo decenti. Ricordo che praticamente nessuno possedeva un processore matematico per
il PC perchè l'oggetto costava il doppio dell'intero PC!
All'epoca lo Stephen era tutto preso dagli automi cellulari
ed infatti l'articolo ne spiega
usi e consumi con qualche bella immagine (più bella che
effettivamente utile). L'ultimo articolo è forse il più
interessante ed innovativo: "Software per i sistemi
intelligenti" di Doyuglas B. Lenat parlando di come
si possa iniettare un tantino di intelligenza
nei nostri programmi illustra a latere anche quello che
sarà poi considerato un irrinunciabile tool per gli sviluppatori,
cioè l'IDE (Integrated Developer Environment) che ormai
tutti usiamo in tutte le salse ma che ha uno scopo unico:
mostrarci le informazioni di cui abbisognamo in maniera
organizzata.
Che dire in conclusione? Un numero della rivista che
ho letto più volte (lo denota anche l'usura de fascicolo
stesso) e che mi ha fornito nei primi anni della mia carriera
di softwarista un punto fermo e l'indicazione della strada
da seguire. L'articolo di Wirth confesso
di averlo scopiazzato alla grande per preparare i corsi
di programmazione e di aver usato fra lo stupore generale
l'algoritmo di Boyer e Moore per la ricerca di parole in
un testo.
sonicher@webriviste.com |