spunti

Godel, che di linguaggio in linguaggio, di metalinguaggio in metalinguaggio è arrivato a dimostrare il buco esistente in qualcosa che 

A mio avviso a questo punto ben difficilmente la discussione potrà essere contenuta entro i relativamente angusti limiti del tema «Come scrivere bene programmi per computer». Piuttosto, avrà a mio avviso più d'una ragione per aspirare ad essere introdotta nel salotto buono della filosofia, presentata dall'inappuntabile e imperturbabile maggiordomo (il maggiordomo del salotto buono della filosofia non può non essere inappuntabile e imperturbabile; come l'impareggiabile Henry dei Black Widows) come «La Tecnica delle applicazione pratica delle idee», oppure «Gli esperimenti sulla relazione tra il Mondo delle Idee e la Realtà». 

Il nostro discorso, infatti, pertiene almeno per una buona metà a quella branca della filosofia che tratta l'analisi, l'interpretazione e la classificazione delle interazioni tra teoria e realtà, che i filosofi e le persone serie chiamano a volte con il nome di Epistemologia (termine che suscita sempre un certo timore in chi lo ascolta senza appartenere alle suddette categorie), altre volte con il più ***********, 

La programmazione è una scienza che sta a metà fra cielo e terra.

Tuttavia appare subito chiaro che la teoria della programmazione non funziona come le altre teorie la cosa funziona in modo un po' diverso dal solito, nel senso che di solito l'epistemologia si occupa della correttezza formale di sistemi di conoscenza, della validità teorica, e quindi tutto sommato poco reale, poco dimostrabile se non da un punto di vista filosofico, 

Mentre nel nostro caso noi si siamo interessati alla determinazione di alcuni presupposti formali su cui innestare proposizioni, riflessioni, deduzioni o sussunzioni, ma siamo non meno interessati alla loro applicazione pratica, alla loro verifica sperimentale.

E qualcosa del genere non si era mai visto prima d'ora. Platone si, aveva detto qualcosa sulle idee, anzi sulle Idee; ma l'aveva fatto considerandole al tempo stesso assiomatiche e inaccessibili. Ora noi abbiamo dei motori, delle macchine in cui possiamo introdurre delle Idee, anzi delle idee, e metterle alla prova, farle girare davvero, vedere come funzionano. che ben poche erano le mentre adesso con queste idee possiamo giocarci, metterle alla prova. Un po' la stessa differenza che potrebbe esserci tra il concepire il concetto di Atomo, per via filosofica assiomaticamente (anche se intelligentemente) posto alla base della costruzione della realtà da un Filosofo, e poter giocare con un SincroProtoCiclotrone da 12 MegaWatt.

 

 come è chiaro che ogni discussione seria sullo studio filosofico delle interazioni tra teoria e realtà, che i filosofi e le persone serie chiamano a volte con il nome di Epistemologia (termine che suscita sempre un certo timore in chi lo ascolta senza appartenere alle succitate categorie), altre volte con il più ***********, 

Come i Greci, che vivevano in un mondo che andava strutturandosi intorno a regole intrinsecamente razionaliste (le stesse idee che, fuse con il Cristianesimo, porteranno alla generazione della società occidentale), e che si mantenevano aperto uno spazio di discussione artistica scrivendo e ascoltando e vivendo quelle splendide costruzioni dello spirito che sono le Tragedie, in cui si prendevano la libertà di dubitare dell'Ordine degli Dei (oppure, per altro verso e su una scala in certo senso minore, le Commedie, in cui si prendevano la libertà di ridere dell' Ordine degli Dei), così consentendo libera espressione alla polarità negativa dell'anima umana, così anche noi, è probabilmente utile che lavoriamo e senza mai dimenticare, guardando a ciò che facciamo, di esplodere ogni tanto in una risata apotropaica, che allontani (naturalmente grazie anche all'azione fisica delle correnti d'aria ingenerate dalla risata stessa) gli effetti micidiali del battito d'ala della nostra farfalla

, che di certo avranno effetto arriveranno sino all'Australia dove la Farfalla inconsapevole si sta preparando al micidiale battito d'ala)

Ma se così vuole la realtà, ebbene, che sia!

costruivano positivamente e, trovavano un opportuno spazio di discussione e di im nella Tragedia (Nietsche, )

 implicita (ma neanche tanto) negazione della validità imperitura ed universale dei principi positivistici
Tale approccio, 

al principio del diritto negativo, in linea di principio non pià giusto del diritto positivo, ma senz'altro più prudente 

 

si contrappone al Principio cui si rifanno 

 

In ciò ricollegandosi direttamente, se vogliamo, alla teoria negativa di Popper e della grande tradizione del liberalesimo anglosassone

Adesione alla seconda legge nella forma debole, con il rifiuto della Prima

Riprendendo il discorso dal più prosaico punto di vista del programmatore medio, che si preoccupa senz'altro più della perenne instabilità di Windows (con o senza farfalle in circolazione) che non dei problemi filosofici che affliggono le menti illuminate dei grandi uomini, penso che il problema possa essere affrontato - realisticamente e statisticamente - alla luce dei seguenti punti.

Il cliente è sempre un positivista convinto.

La principale difficoltà da affrontare nel lavoro è: come convincere il cliente 

 

Normalmente 

Per altri illuminanti riferimenti sulla teoria e l'appli stupidità, vedi ************* di Cipolla.

 

Perchè, se la programmazione è effettivamente, come è, una scienza esatta, la creazione di ogni programma è molto più simile ad una operazione artigianale che ad una esecuzione scientifica? I punti in discussione sono senz'altro tre, a mio avviso:

la traduzione delle specifiche

Dati un problema e la sua analisi, le specifiche di costruzione del programma che risolvono il problema costituiscono una sorta di proto-algoritmo che dovrebbe essere in grado di risolvere il problema. La computabilità e la correttezza di un algoritmo non sono mai scontate, e sono normalmente verificabili solo in via sperimentale. In altre parole, per sapere se le specifiche di un programma sono corrette, bisogna scrivere il programma (giusto, esattamente aderente alle specifiche) e fare la prova.
la verifica del funzionamento Verificare il funzionamento di un programma è impresa più impossibile che improba. Ogni programma riceve un insieme di input, che deve elaborare emettendo un certo insieme di output. 
la complessità del sistema I programmi veri hanno a che fare con un sistema complesso costituito da
le informazioni arrivano dal mondo esterno le informazioni su cui si basa l'analisi e quindi tutto lo sviluppo del programma derivano da uno studio di condizioni appartenenti al mondo esterno; possono essere sbagliate
   

A mio avviso il fatto che, mentre si può ben definire la programmazione una scienza esatta, come la matematica, la sua applicazione concreta cade quasi sempre è indubitabile che la creazione di ogni programma è una operazione artigianale. Tanta certezza v'è nell'una, quanta incertezza nell'altra. 

Ogni programma è effettivamente un sistema complesso costituito dalle specifiche del problema da risolvere, la definizione della soluzione entro i termini forniti da un linguaggio di programmazione

Matematica senza aritmetica

Scopo di queste mie libere riflessioni, in effetti, è mettere in luce gli effetti deleteri della sopravvalutazione della componente positivista nella maggioranza delle persone che hanno a che fare con l'informatica. Tanto minore è la competenza specifica, tanto maggiore è l'ignoranza 

Proponendo un parallelo effettivamente impegnativo, che tira in ballo 

 

Non posso nascondere oltre la paura che mi incutono i positivisti.
Umberto Eco diceva a proposito dei Templari e degli stupidi: se parlate con qualcuno di storia medievale o della tecnica di cottura dei pop-corn nella società postindustriale o di qualunque altro tema di qualunque ramo dello scibile, e il vostro interlocutore accenna all'influenza esercitata sull'argomento dall'Ordine Segreto dei Templari [e/o dai Rosacroce], sappiate che nel 99.99% dei casi avete di fronte uno stupido, soggetto pericolosissimo tra i pericolosi, e scappate, il più lontano possibile, il più velocemente possibile [liberamente citato a memoria e a senso]).
Non troppo diversamente, anche se da cattedra di altro livello, io suggerisco a chi abbia la sventura di incontrare un positivista informatico doc (che per essere tale deve essere anche esente da dubbio): se riesci a riconoscerlo in tempo, scappa, perché altrimenti avrai certamente occasione di pentirtene.
Riconosco in specifico quattro casi principali:

bullet

tu sei un programmatore e lui è un profano dotato di potere decisionale (quindi quasi certamente un cliente o un direttore-di-qualche-cosa); se non impari a gestirlo sei nei guai, e guai grossi: ti lascerai travolgere dal suo incauto ottimismo e annegherai con lui nel mare tempestoso e infinito dei fallimenti informatici;

bullet

tu sei un programmatore e lui è un programmatore: pericoloso, ma dovresti avere le armi necessarie per difenderti; non lasciare mai che ti si avvicini troppo, e soprattutto non consentirgli mai di lavorare con te;

bullet

lui è un profano e tu sei un profano; l'influenza non dovrebbe essere così temibile, ma scappa comunque perché il morbo è contagioso, e molto spesso si diffonde in altri ambiti personali e professionali della persona che ne viene colpita; 

bullet

lui è un programmatore, e tu sei un profano; non c'è scampo.

 

aggiornato il 23/01/2010

home

scrivimi, se ti va