Il workshop è stato un’introduzione a diversi concetti, dall’organizzazione del codice, all’interazione tra codice e font e alla parametrizzazione di determinati aspetti del carattere tipografico.
La prima parte del corso è stata dedicata alle basi della programmazione in Python, partendo dalla definizione di dati e funzioni che operano con dati; in seguito, a partire dalla struttura delle font, per come sono rappresentate in RoboFab/FontParts (le librerie impiegate durante il workshop) si è visto come progettare delle funzioni che modificano in modo sistematico i glifi: nel fare questo i partecipanti hanno potuto impiegare i concetti esplorati nella prima parte e, in particolare, come la progettazione delle funzioni che operano con i dati possa seguire in modo naturale dalla struttura dei dati stessi, portando a un’organizzazione efficiente modulare del codice.
Questa organizzazione ha permesso di introdurre un altro concetto: quello delle funzioni generiche rese possibili da uno stile di programmazione comunemente conosciuto come funzionale: usando questo approccio è quindi stato possibile cambiare il comportamento del programma, sfruttando la modularità, senza dovere cambiare la sua struttura.
In seguito il corso si è concentrato sulla creazione di glifi con esempi semplificati perché fosse possibile concentrarsi sui concetti fondamentali.
Il primo passaggio è stato quello di creare dei glifi/pattern realizzati attraverso delle semplici regole; da qui il secondo passo è stato creare delle lettere costruite con elementi discreti (all’inizio dei semplici cerchi) secondo un disegno stabilito dai singoli partecipanti. Quest’ultimo passaggio ha di fatto portato a creare una versione semplificata di un interprete che legge delle istruzioni (nel caso specifico da un semplice file di testo) e le trasforma in forme; per arrivare a questo risultato sono stati usati tutti i concetti affrontati in precedenza e si è visto in pratica come la modularità delle funzioni e le funzioni generiche potessero essere impiegate come strumenti per aprire delle possibilità espressive da un punto di vista grafico ma semplici dal punto di vista della programmazione.