Autore: Gregory J. E. Rawlins
Sottotitolo:
Editore: Editori Laterza
Pag.: XII + 170
Ediz.: 1a 1999
Altre opere dello stesso autore: Moths to the flames,
Mit Press. (Disponibile liberamente sul Web., giaà letto, non molto
interessante).
Prezzo: basso, ma considerando il contenuto è giusto.
Saggio leggero. Non è critico dei computer nè apocalittico, come invece il titolo lascerebbe supporre. La prima parte del saggio sembra rivolta a chi non sa nulla di computer e ne presenta i probabili sviluppi futuri (superfantastici in termini di prestazioni, ecc).
La seconda parte è leggermente più interessante, ma ancora generalmente una risciaquatura di piatti. Non lo conserverò. Seguono estratti di un qualche interesse.
1) P. 98-100 l'autore suggerisce ai programmatori di sviluppare software
che apprenda di più. Ad esempio che impari quali sono gli errori
tipici dell'utente e che impari a prevenirli o a correggerli. Talvolta
una cosa del genere non sarebbe troppo difficile da fare, come mettere
l'autocorrezione delle parole in un wordprocessor o nella shell Dos, o
altre caratterstiche simili. I programmi attuali non imparano mai che noi
spesso vogliamo fare la stessa sequenza di operazioni che abbiamo gli abbiamo
fatto fare un'infinità di volte. Quando immettiamo un comando e
facciamo un errore di solito ci concentriamo su quella parte, quando diamo
di nuovo il comando. Ma facilmente introduciamo errori in un'altra parte.
Questo nostro difetto o caratteristica potrebbe essere tenuto di conto
dai computer. Ad esempio potrebbero richiederci solo la parte errata o
ignorare errori nella parte che prima era corretta.
Questo mi ricorda una citazione: Bad Command. Bad, Bad Command!
Sit! Stay!
2) Tratto da p. 122-125. L'autore nota che: a) la potenza dei computer
odierni è molto alta, nulla a che vedere con quella dei computer
di un tempo. E nel futuro prevedibilmente la potenza aumenterà ancora
di molto. Se continuerà a raddoppiarsi ancora solo alcune volte.
b) Il software è in crisi. I grossi progetti software costano cifre
immani, sono pieni di errori, ecc.
Per cui conclude che l'attuale metodo di programmazione sta cominciando
a non essere più adatto per le macchine attuali. Oggi non conviene
più sfruttare tutta la potenza del computer, ma inventare nuove
forme di programmazione più centrate sull'utente e sull'affidabilità,
adattabilità e autoadattabilità del software.
Io penso: Molti dei compiti che dovremo far svolgere ad un computer
fra venti anni saranno simili a quelli odierni (davvero?) ma la potenza
di calcolo sarà mettiamo, cento-mille volte superiore. Per cui si
potrebbe pensare di sfruttare quel 99.9% extra per rendere adattabile,
elastico e robusto il software.
In pratica: nel software del futuro (o almeno una parte, penso che
in certi campi l'efficinza massima sarà sempre necessaria) solo
una piccola percentuale della potenza di calcolo dedicata ad un programma
sarà usata per svolgere il lavoro affidatogli dall'utente, diciamo
l'1% o 0.1%. Il resto sarà utilizzato per far funzionare il programma
come un essere vivente, come una cellula, il cui scopo principale è
l'autosopravvivenza e come "prodotto collaterale" produce quelcosa di utile
per il corpo a cui appartiene.
Il programma sarebbe composto da un'infinità di agenti in competizione
e collaborazione, da una miscela caotica simile al citoplasma cellulare.
Già oggi sono nati pallidi esempi di questa filosofia: Core
Wars è stato il primo, e poi Tierra, e la competizione fra programmi
parassiti, ecc.
Un esempio meno estremo è dato dal mio programma di elab. di
immagini CVIPtools, con interfaccia scritta in Tcl e procedure in
C compilato. E' quasi ideale. Ancora è troppo lento e troppo fragile.
Ma quando le macchine saranno dieci volte più veloci del mio P75
tale metodo sarà usabile dal punto di vista della velocità.
E sviluppi nel software andranno oltre il Tcl, risolvendo la fragilità
e frammentazione.
3) Citazione da p. 136. "[...] diventano programmatori solo coloro che
sono maniacali rispetto ai dettagli, vogliono dominare le macchine, e sono
in grado di essere trattati come degli stupidi giorno dopo giorno"
L'autore dice che i programmatori si assumono totale responsabilità
per quello che fanno, qualsiasi problema sarà colpa loro. Oggi nel
programmare i computer c'è una specie di fierezza epica che chi
non è programmatore non è in grado di capire. La programmazione
è una delle poche professioni in cui bisogna sapere esattamente
e completamente cosa si sta facendo in ogni preciso momento.
In media si stima che un buon programmatore sia in grado di scrivere
circa venti righe di codice corretto al giorno.