Nella puntata precedente abbiamo visto che da qualche settimana è disponibile un emulatore online del primo Macintosh, con il quale si possono provare parecchie applicazioni storiche per il Mac direttamente dal browser.
Le applicazioni presenti in questo momento sono 77, non tantissime, ma è probabile che aumentino con il tempo.
Ci sono due versioni di MacOS (proprio così, con Sierra siamo tornati allo stesso nome ma con una maiuscola in meno), un System 6 ridotto all’osso e un System 7 (del 1991) con un buon numero di applicazioni installate, a mostrare cosa poteva fare un Mac un quarto di secolo fa (System 7 è praticamente contemporaneo a Windows 3.0, uno dei sistemi operativi più inutili e pieni di bachi che abbia mai utilizzato).
Ci sono poi un po’ di giochi classici, che continuamo a vedere riproposti ancora oggi in tutte le salse, con solo un vestito più carino. Non mancano le applicazioni di produttività personale e qualche numero delle prime riviste in formato elettronico (e-zine).
Per lo sviluppo ci sono alcuni BASIC, ma c’è soprattutto HyperCard (con qualche stack relativo) a dimostrare la genialità di un programma troppo avanzato per i suoi tempi.
Insomma, con questo emulatore si possono provare parecchie cose interessanti, utili per mostrare ai più giovani le virtù (e i limiti) dei Mac degli anni ‘80 e ‘90, e che fanno respirare un soffio di nostalgia a chi c’era già e quei Mac e quei sistemi operativi li ha usati davvero.
Ma fra le tutte applicazioni disponibili, quella che mi ha incuriosito di più è stata DataFlow Version 0.0 (attenzione al numero di versione).
Non ne avevo mai sentito parlare, però non pretendo di certo di conoscere tutto il software sviluppato per il Mac (o per qualunque altra piattaforma). Forse quello che mi ha colpito è la finestra scarna e quasi vuota del programma, molto diversa rispetto a tutti gli altri programmi disponibili.
Lancio l’emulatore e la prima impressione è che DataFlow sia un programma come tanti, qualcosa per realizzare diagrammi di flusso o simili.
Ma poi guardo con più attenzione e mi accorgo che in realtà DataFlow è molto di più, è un sistema, anche se assai rudimentale, di programmazione visuale basato sul concetto di programma a flusso di dati (da cui il nome).
In pratica un programma di questo tipo è composto da un certo numero di blocchi fondamentali che eseguono una operazione predefinita sui dati in ingresso e poi li trasmettono al blocco successivo. Poiché i blocchi di elaborazione sono indipendenti fra loro, questo semplice concetto porta naturalmente al calcolo parallelo, senza i trucchi e gli inganni di tanti linguaggi adattati in modo un po’ raffazzonato allo scopo.
L’idea era relativamente nuova per l’epoca (con DataFlow siamo più o meno alla fine degli anni ‘80) ma ha generato sistemi di programmazione molto avanzati, utilizzati ancora oggi in ambiti estremamente diversi. Come ad esempio LabVIEW di National Instruments per il controllo della strumentazione elettronica, Simulink di MathWorks per la modellazione di sistemi dinamici, Quartz Composer di Apple per la composizione grafica e, più recentemente, TensorFlow di Google, diventato in pochissimo tempo uno degli strumenti più popolari, anzi direi proprio hot, nel campo della programmazione e dell’intelligenza artificiale.
Insomma DataFlow è un anticipo del futuro, una vera chicca buttata lì con noncuranza fra un foglio elettronico ed un giochino senza tante pretese.
Usarlo non è semplice, almeno per le abitudini odierne. L’interfaccia è rozza, i blocchi grafici non si possono spostare dopo averli posizionati sul foglio (io almeno non ci sono riuscito), le linee di connessione vanno un po’ troppo per i fatti loro, si vede che è una versione molto acerba (versione 0.0, oggi la chiameremmo una versione alfa se non meno). Alla fine comunque sono riuscito a fare un programmino semplice semplice, che prende due numeri interi e ne calcola somma, prodotto e quoziente.
Niente di che, è chiaro, ma quello che è particolarmente bello è che il programma è dinamico, se si cambiano i numeri in ingresso mentre il programma è in esecuzione le caselle di uscita aggiornano immediatamente i risultati. Oggi è scontato, ma trent’anni fa?
Naturalmente i programmi moderni fanno molto di più e in modo molto più comodo, ma i fondamenti ci sono già tutti in DataFlow. È bello che l’Internet Archive l’abbia sottratto all’oblio del tempo.
Un semplice programma in LabVIEW (sopra), e in una vecchia versione di Simulink (sotto).