Schiavi del computer?

Data 19990205.

Autore: Gregory J. E. Rawlins
Sottotitolo:
Editore: Editori Laterza
Pag.: XII + 170
Ediz.: 1a 1999
Altre opere dello stesso autoreMoths 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.