giovedì 6 settembre 2012

Pensiero digitale: il linguaggio LOGO 2


Prima di introdurre la seconda parte sul linguaggio LOGO, due parole sulla terminologia.

La prima volta che mi spiegarono la distinzione tra analogico e digitale fu all'università, e a parlare era Umberto Eco. E forse sarà tanto “pedigree” che mi rende insopportabile la leggerezza e l'approssimazione con cui il termine “digitale” viene usato oggi, all'interno di discorsi spesso tanto zeppi di ideologia quanto carenti di sostanza. E mi dà fastidio che sull'approssimazione sistematica qualcuno ci sguazzi, ci marci, ci faccia i soldi, lasciando gli altri nella confusione.
Dalla "LOGO Art Gallery"
Dunque, un sistema analogico è per definizione continuo, si basa sul più e sul meno, sulle quantità, le sfumature; non permette una netta separazione in singoli elementi ed è complicato da modificare. Un sistema digitale invece è discreto, basato sulla presenza o assenza (sì no, 0 1) e, una volta separato nei suoi singoli elementi, consente elaborazioni virtualmente infinite. La musica e l'arte sono tradizionalmente analogiche, così come il pensiero, le lingue, i sensi degli umani. I computer e gli aggeggi elettronici che usiamo oggi, dentro sono digitali, e il progresso della tecnica ha permesso di digitalizzare, cioè rendere discreti, separabili e quindi elaborabili, anche sistemi tradizionalmente analogici, come la musica, le immagini, i video.
Questo però non significa affatto per gli umani, come qualcuno sembra credere, lo sviluppo necessario né tanto meno automatico di particolari e innovative “competenze digitali”, dato che i contenuti digitali (dentro) a noi arrivano (fuori) secondo le consuete modalità analogiche, tradotti, decodificati, resi accessibili ai nostri sensi. E anche i gadget dell'elettronica, non a caso vedono la loro stagione di massima diffusione nel momento in cui adottano interfacce come il touch screen, (“digitale” nelle modalità d'uso solo nel senso che si usano le dita!) tendenzialmente istintive, naturali, corporee, sempre più metaforiche e analogiche nell'approccio utente!

Anche negli anni Ottanta, non si scherzava con l'ideologia. Nei convegni – con la stessa sicumera con cui oggi qualcuno parla di “nuove specie in via d'apparizione” perché vede marmocchi che giocano fin da piccoli con i telefonini! - c'erano i soliti “lungimiranti” che sentenziavano che chi non fosse stato capace di programmare, nella nuova società dei computer si sarebbe ritrovato analfabeta! E qualcuno aveva definito il linguaggio di programmazione BASIC come il «latino del futuro»!
Certo è che, i linguaggi di programmazione cosiddetti di “basso livello”, così come quelli strutturati (un po' meno il suddetto BASIC), quelli sì costringono (o aiutano, dipende dal punto di di vista), gli umani ad imparare, ad assumere un modo di pensare in qualche modo digitale.
E può non essere affatto, per la capacità di comprendere meglio il mondo in cui viviamo, una cattiva cosa.

Dalla "LOGO Art Gallery"
Il confronto tra il BASIC e LOGO può essere illuminante.
Prendiamo l'esempio di un programmino per disegnare un quadrato con il BASIC Microsoft MSX2, uno dei più potenti tra quelli di prima generazione (poi sono arrivati i BASIC anche strutturati, moderni, che sono un'altra cosa). Per brevità, alcune istruzioni complesse grafiche e sonore venivano sintetizzate con lettere dell'alfabeto.

10 SCREEN 2
20 LINE (50,50) - (100-100), 15, B
30 GOTO 30 
 
Dopo aver definito un modo di schermo grafico, date due coordinate, usando il colore 15 viene disegnato un quadrato (B sta per block, e vale solo all'interno dell'istruzione LINE). La riga 30, richiamando se stessa, serve a far rimanere il quadrato sullo schermo. In modo analogo, all'interno dell'istruzione DRAW (ma solo in questo "dialetto" BASIC) valgono la "U" di up, la "D" di down, la "R" di right , la "L" di left. Così, per disegnare un quadrato, si può anche scrivere:

10 INPUT A
20 SCREEN 8
30 DRAW "D=A;R=A;U=A;L=A;"
40 GOTO 40 
 
Dove i parametri di DRAW sono indicati sotto forma di una «stringa di caratteri» al cui interno è ammessa la variabile A (la dimensione del lato, racchiusa tra i segni «=» e «;»), che va immessa da tastiera. Il su, giù, destra e sinistra sono dal punto di vista, relativo ed «esterno», di chi guarda lo schermo.
Latino del futuro? Direi che, anche per quei tempi, ci voleva un notevole sforzo di ottimismo!

Nel LOGO il punto di vista è sempre e solo quello della “tartaruga” (il cursore sullo schermo). Per cui, indicando con il segno «:» la variabile «lato», per disegnare un quadrato si può scrivere un programma così, rigoroso, pulito, semplicissimo:

per quadrato :lato
ripeti 4 [avanti :lato destra 90]
fine

Direi che anche l'assoluto neofita, umanista irriducibile e tecnofobo, che leggendo le pur semplicissime tre o quattro linee di istruzioni BASIC qui sopra avrà probabilmente avuto una istintiva reazione di rigetto, di fronte a un programmino così, probabilmente qualcosa capisce, immagina e, trovando magari anche la cosa interessante, si ritrova come per magia a “pensare digitale”...

Nessun commento:

Posta un commento