La “Mission” del sistema Theremino
Theremino è una via di mezzo, tra Arduino e il LEGO e si rivolge principalmente a persone, che non sono tecnici elettronici e programmatori. Noi tecnici tendiamo a dimenticarlo, ma le persone che si occupano di altro, sono qualcosa come il 90% della popolazione mondiale.
La “Mission” del sistema Theremino è dunque: “Ricongiungere il mondo digitale col mondo reale e concreto. Con tecnologie semplici e facilmente riproducibili. E con il massimo rispetto per l’ambiente e per tutti gli esseri viventi“
Quale è la strada che stiamo sperimentando?
I PC facilitano operazioni, che in passato richiedevano macchine costose e conoscenze specialistiche. Questa democratizzazione delle conoscenze, si sta estendendo in ogni campo, dalla musica alle immagini, al video… Ma quando si tratta di collegarsi all’hardware, tutto si complica. Anche con i sistemi più popolari (Arduino e Lego), qualunque operazione va programmata nel firmware. E per programmare servono conoscenze specialistiche. Per cui, al posto di fare un termostato (l’idea originale), si finisce per diventare programmatori improvvisati (e il termostato non viene mai finito).
Ma i computer potranno, prima o poi, comunicare facilmente con l’esterno? Con “facilmente” qui si intende: “senza riprogettare l’intero InOut, per ogni nuovo compito“
Estrazione dei blocchetti di memoria del computer HAL 9000, nel film “2001: A Space Odissey” (Clarke & Kubrick – 1968)
Secondo noi, questo avrebbe dovuto avvenire, già negli anni 80 e 90, ma c’è stato “qualcosa” che lo ha impedito. Misurare una temperatura, accendere un led, o muovere un motore sono operazioni semplicissime, quindi chiunque dovrebbe poter collegare facilmente questi dispositivi. Come è possibile che tutto si sia evoluto così tanto, ma che queste operazioni si continuino a fare come trenta anni fa, quando si saldavano fili alla parallela, e poi si scriveva il software per farli funzionare?
Un tablet nel film “2001: A Space Odissey” (Clarke & Kubrick – 1968)
Tutta la tecnologia che usiamo oggi (tablet, telefonini, GPS e iPad compresi), era già presente nei libri di Artur C. Clarke (inventore e scrittore di fantascienza), quando i fondatori di Internet, Microsoft, Apple e Google giocavano ancora con le macchinine, o non erano nemmeno nati. Come mai, in quasi 100 anni, non c’è stata nessuna evoluzione, dei principi base dell’InOut? Cosa è stato, a rendere così difficile, la progettazione di ogni nuovo dispositivo di InOut?
Per scrivere ci sono i tasti, per muovere ci sono i Mouse, per vedere ci sono le WebCam, ma per accendere un led o leggere una tensione? E’ vero che ci sono gli oscilloscopi (300 Euro) e i tester collegabili con il computer (150 Euro), ma io di tensione ne vorrei leggere tre, cosa faccio? Collego tre tester alla USB? No, ti serve un Arduino, ok fatto, comprato, e adesso che ci faccio? E qui inizia il lungo cammino che ti trasforma in programmatore improvvisato, e ti farà dimenticare completamente l’idea originale (leggere tre tensioni). E infine anche la frustrazione, nell’accorgersi che programmare è più difficile del previsto.
Anche il sistema Theremino ha le sue difficoltà. Ma abbiamo fatto del nostro meglio per semplificarlo. E molti ora riescono a costruire apparecchi, che non avrebbero mai pensato, di poter fare da soli.
Cosa ha impedito l’evoluzione dell’IN-OUT ?
Secondo la nostra visione, l’errore è stato di estendere troppo il modo di ragionare digitale. Nessun essere vivente fa questo. La selezione e la evoluzione hanno dimostrato, in modo inequivocabile, quale è la strada da seguire.
La strada scelta dalla evoluzione, principalmente per la sensoristica e i muscoli (ma non solo), è 100% analogica e approssimativa. I neuroni sussurrano o gridano il loro segnale di uscita e non si preoccupano, se i neuroni successivi, hanno ricevuto il messaggio. Tutto è totalmente asincrono, si scrive “quando capita” e si legge “alla carlona”. Negli esseri viventi, tutti i messaggi sono di tipo “poco” o “tanto”, con ripetizioni non superiori ai 10 .. 100 scambi al secondo (dalle onde cerebrali alfa a quelle gamma). E nessuno può dire che i sistemi biologici funzionino male, anzi!
Per cui stiamo sperimentando, un modo diverso di comunicare, tra moduli hardware e software, e anche tra gli stessi software, che risiedono su applicazioni separate.
L’unico modo di comunicare, nel sistema Theremino, sono i valori, diciamo “analogici”, che si scambiano attraverso gli SLOT di comunicazione. Gli slot sono una specie di caselle della posta. La lettura e la scrittura degli slot sono sempre asincroni. E gli Slot contengono solo valori predigeriti, valori che indicano “poco” o “tanto”, oppure tensioni, millimetri, angoli o qualunque cosa ci si metta d’accordo che siano.
Esempi di comunicazione asincrona e approssimativa. Secondo le regole attuali di progettazione del software, questi sistemi dovrebbero funzionare male.
I numeri che si scrivono e leggono negli slot, sono la comunicazione tra le applicazioni e sono simili al potenziale assionico, che i neuroni si scambiano tra loro. Tutto rigorosamente asincrono e non deterministico. Questi sono i principi da usare per l’Input Output. Selezione e evoluzione lo hanno dimostrato.
Anche i computer si evolvono in questa direzione. In passato i computer facevano tutto in batch. Ad esempio le paghe degli operai venivano calcolate con schede perforate, non una per volta, ma tutte insieme. Infine, dopo aver ruminato per giorni interi, il macchinone stampava tutte le cifre finali, su un unico foglio molto lungo.
A quei tempi sembrava impossibile far lavorare i computer in altro modo. Ma tutto si sta spostando sempre più, dal “pre-calcolato”, con precisione assoluta, al “real time analogico”, con precisione approssimativa e variabile.
Ma si perde precisione !
Si certo, l’assoluto determinismo non c’è più. Ma è proprio questo il passo psicologico che si deve fare. E’ proprio la imposizione acritica, di un assoluto determinismo digitale, che sta impedendo ai computer di evolversi e di fare quelle semplici operazioni, che gli esseri viventi, fanno con tanta facilità.
La progettazione di un sistema, deve coordinare la precisione, di tutti i sottosistemi. Non si deve programmare alla cieca, senza tener conto, che la meccanica di InOut, non è software. Oggi si pensa che il software debba essere sempre deterministico e tutti i sottosistemi sempre sincroni tra loro. Ma progettare alcune parti di un sistema, con prestazioni non necessarie, è un errore di progetto. Non si ottiene un progetto migliore, ma solo un progetto sbilanciato, difficile da realizzare, più costoso e anche più inquinante. Henry Ford lo ha dimostrato, circa un secolo fa.
Comunque la perdita di precisione che proponiamo è relativa, e modulabile a seconda dei casi. I valori analogici, su cui si basa la comunicazione thereminica, sono numeri “floating point”, che permettono precisioni impensabili, per gli esseri biologici. Un “float” può specificare i millesimi di millimetro, su distanze di decine di chilometri.
Si possono quindi ottenere lavorazioni, con precisione alta a piacere, anche con metodi asincroni e non deterministici.
Programmazione non deterministica
Il modo umano di vedere la natura è troppo schematico, troppo assolutistico, troppo umano. Siamo solo delle stupide e testarde scimmie che credono di sapere tutto e non ci accorgiamo che la natura è estremamente più complessa di come la pensiamo. Anzi per certi versi le scimmie sono migliori di noi perché non hanno la arroganza di avere tutte le verità in tasca.
Le “scienze classiche” insegnate nelle scuole pongono una esagerata fiducia nelle formule matematiche rigorosamente deterministiche. Questo modo di pensare ebbe il suo culmine verso la fine dell’ottocento, un secolo dominato dall’ingenua credenza di poter descrivere, prevedere e quindi imbrigliare ogni aspetto della realtà.
Nei primi anni del novecento, i fisici ebbero un duro scontro con la realtà e sono stati costretti ad abbandonare la visione meccanicistica. Ma ancora oggi, dopo oltre cento anni, gran parte dei nostri pensieri vive ancora in un era pre-relativistica.
E di questo è senza dubbio colpevole la scuola che insegna con cocciuta arroganza i metodi e le formule del programma, come se fossero le uniche e immutabili leggi della natura. Questa arroganza non si riferisce ai singoli professori, alcuni dei quali modesti e ragionevoli, ma alla scuola come organismo programmato per “inculcare conoscenze”, piuttosto che attendere che vengano richieste.
Quello che manca alla scuola, oltre che la modestia, è la visione prospettica. Cioè informare i ragazzi che quello che si sta insegnando è solo uno tra i molteplici modelli possibili. E che non esiste un insegnamento giusto, che esclude tutti gli altri, ma che possono coesistere differenti modelli, differenti formule e differenti metodi. Alcuni di essi più utili o meno utili a seconda dell’ambito in cui si opera, ma nessuno totalmente sbagliato o da mettere al rogo.
Facciamo un semplice esempio. Per calcolare la dissipazione si insegna a misurare tensione e corrente e poi utilizzare la formula watt = volt per ampere. Ma si dovrebbe anche insegnare che questa formula è solo una estrema semplificazione della realtà. E si dovrebbe anche assecondare la ricerca di metodi che potrebbero essere più adatti da alcuni punti di vista e non sopprimerli come eresie. Perché è proprio la ricerca attiva delle alternative che genera il progresso.
Un ingegnere potrebbe non misurare tensione e corrente ma inventare sul momento un metodo adatto a un caso particolare, ad esempio misurare una differenza di temperatura o la sua variazione nel tempo e poi calcolare la dissipazione attraverso formule che comprendono la costante termica o tabelle da lui stesso create. Mentre un fisico potrebbe trovare più utile tenere conto delle proprietà subatomiche della materia. Nessuno di questi metodi è di per se “quello giusto” e nessuno, nemmeno i più astrusi o esoterici, è del tutto sbagliato. Sono solo diversi punti di vista che descrivono in modo parziale e limitato una realtà che è sempre estremamente più complessa di tutte le nostre formule.
Ascoltate questo aneddoto interessante su Niels Bohr.
L’unica cosa che conta è utilizzare metodi che portino al risultato in modo affidabile, con la precisione richiesta e con i mezzi disponibili. Non stiamo trattando con le immutabili leggi della natura ma solo con i rami dei nostri alberi e con la nostra limitata capacità mentale da scimmie appena un po’ evolute. Ed è solo la nostra smisurata immodestia a farci credere di essere qualcosa di più di un puntino tra due eternità che si chiamano prima e dopo.
Permettere la coesistenza di diverse prospettive, apparentemente contrastanti, aiuta a intravvedere qualche sprazzo della “realtà totale” anche a noi che siamo solo scimmie. Questo però non avviene se siamo accecati dalla arroganza e dalla illusione di avere già in tasca tutti i metodi migliori e le formule definitive.
Werner Karl Heisenberg ha riassunto tutto questo con meno di venti parole:
«La fisica non è una rappresentazione della realtà, ma del nostro modo di pensare ad essa»
Le implicazioni psicologiche e metafisiche di questa frase vanno ben al di là della fisica. Se le comprendessimo appieno la nostra visione del mondo cambierebbe e anche il tempo e la morte assumerebbero aspetti diversi, meno disumani e quindi anche meno spaventosi.
Per chi volesse approfondire questi argomenti consigliamo Il Tao della fisica, che è anche scaricabile da qui in formato PDF.
– – – –
Dopo questa lunga premessa ecco finalmente la “Programmazione non deterministica”.
Anche il nostro modo di programmare i computer riflette il rigido determinismo del nostro modo di pensare. Per averne la prova basta osservare cosa riescono a fare organismi semplici come una formica o anche semplici esseri unicellulari. Basta osservare il loro modo fluido di muoversi e metterlo a confronto con la goffa meccanicità dei nostri chili di hardware e software più sofisticati.
Il sistema Theremino è solo un esempio. Abbiamo indicato una strada e provato a fare qualche passo in quella direzione.
E per finire… Perché ?
Perché costruire computers, software e dispositivi di InOut?
E perché studiare, sperimentare e inventare?
Non sarebbe meglio buttare tutto, stendersi al sole e grattarsi?
La risposta è in questo video: Perché meravigliarci ?
(importantissimo guardarlo fino alla fine, se è troppo lungo saltate alla parte finale)
E non sarebbe male guardare anche gli altri video di link4universe:
https://www.youtube.com/user/Link4Universe
E anche questa meravigliosa recensione del film 2001 – Odissea nello spazio
https://www.youtube.com/watch?v=s2n5IpuZg7I