venerdì, maggio 12, 2006

class Philosopher extends Man

Trovandomi nuovamente a fare didattica universitaria, mi son reso conto (ma già lo si sapeva) che i post-adolescenti vivono in un limbo, separati della realtà che li circonda.
Per questo trovo sempre il modo, nelle mie lezioni di programmazione ad oggetti, di lanciare qualche riferimento alla storia della scienza e alla filosofia.

Rispolverando Java, ci si rende conto senza neanche troppo sforzo, che la programmazione ad oggetti porta dentro di sé 2300 anni di storia della filosofia.
Ritroviamo l'ontologia platonica nell'astrazione ci si effettua in programmazione, dove si possono usare descrizioni generali e incomplete (astratte, appunto) per meglio definire elementi derivati e per fornire un'interfaccia generica che permette di usarli senza preoccuparsi dei dettagli d'implementazione.
I predicati, la teoria della divisione aristotelica e le gerarchie che ne conseguono si ritrovano nei rapporti di ereditarietà che legano le classi tra di loro. Quando si consiglia di programmare, iniziando dalla classe più generale, non si fa altro che definire un concetto, iscrivendolo in un insieme più esteso e suddividere quest’ultimo attraverso una serie di note caratteristiche, fino ad ottenere un insieme che abbia la stessa estensione dell'oggetto da definire.

Divertente come il peso della nostra storia filosofica entra nei minimi dettagli della nostra vita, nella pratica quotidiana.
Diventente quindi anche immaginare come sarebbe il nostro mondo, la nostra scienza, se la storia avesse portato altri filosofi, Eraclito o Lao-tse, ad influenzare così fortemente il pensiero occidentale. Ad esempio: come sarebbe un programma informatico oggi? Come un'indistricabile rete di agenti che, scambiandosi messaggi o influenze, fanno funzionare un Tutto?

3 commenti:

Anonimo ha detto...

interessante questo tuo sforzo per cercare di rendere un po' più eclettica la formazione dei tecnici del domani.
Peccato però che tu stia formando tecnici: la maggior parte dei tuoi allievi saranno sottopagati per lavori precari.
Sono convinto che il tuo approccio sia davvero apprezzabile: stai semplicemente aprendo la mente dei tuoi allievi, ma temo che in questo modo sarà più cocente la delusione una volta sbarcati al mondo del lavoro dove, purtroppo, la cultura di base conta poco.

Un'altra cosa non so se ho capito male io ma mi sembra che tu abbia un po' barato alla fine:
perchè i sistemi operativi hanno una intricata rete di thread che si scambiano messaggi, si fermano ai semafori...
o non sono programmi informatici?
sicuramente ho interpretato male ma l'argomento mi interessa
ciao

Ruthven ha detto...

Grazie!
Penso che proprio perché saranno dei tecnici sottopagati, debbano imparare a guardarsi attorno. La cultura non è un "atteggiamento" e tantomeno elitario: è una maniera, per gli studenti, di diventare uomini e di sapersi difendere a testa alta nel mondo del lavoro, senza essere reazionari. Almeno è quello che spero, per loro.

Sul tema del programma cinese, la mia era solo un'illazione. Un pensiero che mi è venuto; visto che ho notato forti legami con l'eredità filosofica occidentale nei programmi informatici, mi son divertito a pensare a come sarebbe potuta essere l'informatica se fosse nata in Oriente.
Credo che nulla sia stato scritto su questo tema, però è anche vero che un prgramma non può fare altro che computare funzioni parziali ricorsive (e quindi con un insieme di comandi ben preciso): la possibile differenza tra 2 tipi di "informatica" starebbe nel paradigma.
Chissà?! alla fine stiamo parlando di fantainformatica!

Anonimo ha detto...

molto interessante chissà che prima o poi non finiamo a prenderci una birra e a discutere di queste cose...