Programmazione

Parallelamente agli studi universitari, all'inizio degli anni 80 ho avuto esperienze di programmazione in assembly 8080 e Z80.  I primi lavori in assembler riguardavano lo sviluppo del firmware per centrali di sistemi di sicurezza.
Il tema della tesi redatta nel 1983 era una macchina intermedia per l'implementazione di un compliatore per il linguaggio MEL (Micro Embedded Language), un prodtto simile al LISP  ideato  dal mio relatore Prof. Stefano Stefani, sviluppato sul chip 8080.

Durante la mia attività successiva, ho abbandonato l'assembly per passare ai linguaggi evoluti, in particolare il BASIC nelle attività gestionali prima, poi nel settore del telecontrollo, dove ho acquisito anche nozioni di C. 
Dall'inizio della mia attività di libero professionista, ho svolto lavori di programmazione in VisualBasic , DbFast, Ms-basic. 
Ultimamente riservo la programmazione quasi esclusivamente all'utilizzo in ambito web.

Intelligenza artificiale

L'intelligenza artificiale (AI) è stato il primo è più importante tema dall'inizio dell'era dei computers, Fin dai tempi dello scienziato, scrittore e filosofo francese Blaise Pascal e successivamente perseguita fino alla svolta di Alan Touring nel 1950. Prima dell'era dei calcolatori personali (personal computers), il computer veniva raffigurato nell'immaginario collettivo e nei vecchi film di fantascienza come una sorta di 'cervello elettronico' o macchina capace di 'pensare', in grado di risolvere problemi complessi. Il regista Stanley Kubrick nel suo bellissimo film 2001 odissea nello spazio usò tutte le tecnologie allora disponibili e relizzò il suo capolavoro con la collaborazione della IBM allora considerata al top dell'informatica: HAL, il calcolatore pensante della navicella nel film è in fatti una trasposizione delle lettere IBM.

Benchè sia piuttosto naturale prendere a modello il cervello umano per fare un'analogia con i computers , presto però ci si rese conto che le macchine avrebbero avuto sempre dei grossi limiti a competere con la mente umana. Non si tratta di abilità e strategia come nel computer campione di scacchi ma di qualcos'altro difficilmente riproducibile in un programma. Una macchina allo stato attuale non può meditare, apprezzare una musica, provare emozioni. Non può capire le differenze sottili del linguaggio, non può capire la poesia.

Dalla elaborazione parallela, alle logiche diverse da quella binaria del tutto o niente (fuzzy logic) , nessuno è riuscito finora a scrivere un algoritmo che possa realizzare cose che per la mente umana sono così semplici e spontanee, o meglio, non è stato mai trovato un modo di formalizzare il funzionamento della mente umana.
Si possono costruire automi che hanno un software così evoluto da permettere di superare il famoso test di Touring che consiste nella impossibilità che ha un ipotetico operatore di sapere se sta dialogando con un macchina oppure no. Ma ciò non toglie nulla al fatto inconfutabile che si tratta di automi 'stupidi' che rimangono ad un livello nettamente inferiore alla mente umana.
L'analogia mente-cervello può portare anche a fare congetture per esempio sulle patologie mentali. Infatti oggi tentiamo di aggiustare l'hardware (il corpo) per risolvere un problema di software. Sarebbe come cercare nei componenti dell'elaboratore la causa di un errore di programma. 
Accade spesso ai programmatori, specialmente quelli che realizzano firmware, programmi ad un livello molto vicino all'hardware, di non riuscire a capire se la causa di un problema risiede in qualcosa di fisico oppure nel programma. Questo tipo di problema credo si possa trasporre in medicina, lo sa bene chi studia le malattie psicosomatiche.

La grossa differenza sostanziale di un computer rispetto al cervello umano è che il computer non può da solo intervenire per riparare il proprio hardware, né solitamente è in grado di auto correggere il proprio software. Oggi sembra che abbiamo perso questa capacità del corpo di auto-guarigione anche grazie all'idea meccanisista di considerare il corpo alla stregua di una macchina. Un computer è in grado di risolvere problemi complessi con infinite variabili, come riuscire a prevedere con buona approssimazione che tempo farà da qui a qualche giorno, ma non sarà mai in grado di avere delle idee , delle intuizioni o essere imprevedibile. 
Accontentiamoci dunque di avere tra le mani uno strumento prodigioso, che a volte ci facilita di molto la vita, ci fa comunicare con tutto il mondo in un attimo, ci intrattiene con un gioco o ci consente di perderci dentro una vita virtuale, spesso fino a farci dimenticare la propria.

Dovremmo quindi concentrare maggiormente gli sforzi sugli aspetti formali del funzionamento della mente umana. Questa domanda se l'èra già posta il filosofo accademico Douglas R. Hofstadter nel 1979 sul suo interessantissimo libro/manuale G.E.B. un'eterna ghirlanda brillante. Allora magari si arriverà a concepire un particolare linguaggio di programmazione adatto al cervello umano, in modo che si possa far fare alla mente stessa il lavoro più difficile, un po come si fa per sviluppare compilatori. E allora forse si arriverà anche al 'dump' di un cervello umano, alla digitalizzazione dei pensieri e dei sogni. Sarebbe questa una vera rivoluzione dalle implicazioni inimmaginabili, tra cui la più incredibile: ottenere l'immortalità della coscienza individuale, la sua replica e la sua fusione nella coscienza elettronica collettiva.