10 PRINT

Anonimo (1982)

Come nota finale sui numeri casuali e come introduzione al disegno di grafici, è bene dedicare un istante ad immettere ed eseguire questo semplice programma
-Commodore 64 Microcomputer - Manuale D'Uso

Nato nel 1964 presso il Darthmouth College di Hanover (New Hampshire) il BASIC è stato uno dei primi linguaggi di programmazione concepiti esplicitamente a scopo didattico. Nelle intenzioni dei suoi creatori, i prof. John G. Kemeny e Thomas E. Kurtz, il BASIC doveva poter essere facilmente compreso ed utilizzato da tutti gli allievi del college, inclusi gli studenti di discipline non scientifiche.

Lo sviluppo, terminato alle 4 del mattino del primo maggio 1964, proseguì di pari passo con la creazione del primo sistema time-sharing del college (DTSS), realizzato da un gruppo di studenti sotto la supervisione degli stessi docenti e installato sul mainframe General Electric GE-225 dell'ateneo con lo scopo di consentire l'accesso simultaneo di più utenti all'elaboratore.

Tom Kurtz (in piedi) con Michael Busch, uno dei programmeatori del DTSS. Sullo sfondo, il mainframe GE-225. Foto di Adrian N. Bouchard / Dartmouth College

L'operazione fu un grande successo, che oltrepassò le aspettative dei suoi creatori ed i confini del college: la semplicità e la versatilità del BASIC lo resero estremamente popolare. In breve tempo fu distribuito su tutti i sistemi dell'epoca, dai grandi mainframe ai cosiddetti "minicomputer" (che tanto mini non erano) degli anni '60 e '70.

Una pubblicità per la linea di computer "Commodore PET" (1977)

Nel 1977 Kenneth Olsen, fondatore di una delle più grandi aziende informatiche dell'epoca - la Digital Equipment Corporation - dichiarò che non c'era motivo per cui qualcuno avrebbe voluto un computer in casa. Poche affermazioni sono state smentite tanto clamorosamente dalla storia.

Le aziende più giovani avevano intuito che gli avanzamenti nella miniaturizzazione delle componenti elettroniche avevano creato una nuova opportunità per la creazione di un nuovo, gigantesco, mercato consumer. Educazione, hobby, intrattenimento, piccole attività commerciali, ... tutti avrebbero potuto trarre vantaggio dall'utilizzo di un computer.

Il BASIC divenne il linguaggio d'elezione per la generazione degli "home computer". Ogni elaboratore domestico ne includeva una versione, di solito salvata su un chip e indissolubilmente legata al sistema. La conoscenza - anche minima - di questo linguaggio era indispensabile all'utilizzo del computer stesso. Una scelta che si rivelò assai azzeccata: il BASIC era una interfaccia testuale molto semplice per l'utilizzo quotidiano del computer e prometteva una rapida curva d'apprendimento a chi voleva approfondire con la programmazione.

Sono gli anni dell'ascesa di aziende come la Commodore, che iniziò la propria produzione di sistemi informatici con una linea concepita per gli istituti scolastici, e di quello che sarebbe diventato il gigante della nuova era informatica, Microsoft, che esordì proprio con la commercializzazione di una versione del BASIC per elaboratori domestici.

La singolare opera esposta in questa mostra è un interessante frammento di codice BASIC. Si tratta di una unica linea di istruzioni, pubblicata per la prima volta nel 1982 sul manuale utente del sistema Commodore 64. Portato all'attenzione di tutti dalla bellissima pubblicazione "10 PRINT" (MIT Press, 2013), il brevissimo codice BASIC rappresenta un intrigante microcosmo che racchiude in modo conciso ed elegante la tematica della dialettica tra ordine e caos, ossessivamente presente in tutti i primi lavori di computer art.

Il programma noto come "10 PRINT" è definito come segue: 10 PRINT CHR$(205.5 + RND(1)); : GOTO 10

Eseguendo il programma con l'istruzione RUN, il cursore inizia a disegnare a schermo - casella per casella, dall'alto in basso e da sinistra verso destra - un imprevedibile labirinto che continua ad essere generato indefinitamente davanti agli occhi dello spettatore.

Il programma "10 PRINT" in esecuzione su un Commodore 64.

Il cuore del software sta nella funzione CHR$, che trasforma il numero nella parentesi nel suo carattere corrispondente. Nel BASIC, infatti, ogni carattere alfanumerico e di punteggiatura ha una sua rappresentazione numerica. Ad esempio, la lettera E ha il suo corrispondente numerico in 69, il carattere / è rappresentato dal numero 205 e così via.

la funzione RND è un generatore di numeri pseudocasuali, il suo compito è quello di introdurre un elemento imprevedibile nella scelta dei caratteri da rappresentare. Poichè CHR$ utilizza soltanto la parte intera di un numero come argomento, aggiungere con RND(1) un valore casuale compreso tra 0 ed 1 porterà il numero da convertire a carattere a variare casualmente tra 205 (carattere = /) e 206 (carattere = \).

l'ultima istruzione, GOTO 10, porta il programma a ricominciare la scelta e la stampa a video da capo, in un loop senza fine.

Ciò che dal nostro punto di vista è particolarmente interessante è che il programma si presta ad essere modificato con risultati estetici sempre nuovi e spesso interessanti, manipolando semplicemente gli argomenti delle funzioni CHR$ e RND o inventando stratagemmi più complessi ma sempre alla portata di tutti. I visitatori di "bin/art" sono incoraggiati a giocare con le infinite possibili varianti del codice.

Credits

Originariamente apparso su Commodore 64 User Manual 1982
Restauro sistema Commodore 64 Gabriele Zaverio 2019