Quando si parla di programmazione la nostra mente immagina una successione di linee di codice con una determinata sintassi.
Piet, un
esoterico linguaggio di programmazione, stravolge questo modo di concepire il processo di creazione di un software, fornendo ai programmatori degli strumenti per scrivere programmi
utilizzando le immagini.
Il nome del linguaggio è ispirato al pittore olandese
Piet Mondrian e alcuni programmi riportati sul
sito ufficiale del linguaggio richiamano proprio alcuni dipinti di questo pittore.
David Morgan-Mar, l'ideatore del linguaggio, non è nuovo a esperimenti riguardanti i linguaggi di programmazione, come dimostra la
pagina di Wikipedia a lui dedicata.
E' singolare come alcune immagini di questo bizzarro linguaggio sembrino quasi dipinti di arte astratta; guardando tali immagini appare subito chiara a un programmatore l'
importanza dei colori di ogni pixel nella stesura e nella successiva interpretazione del programma.
Il
sito ufficiale del linguaggio, a prima vista, potrebbe sembrare più un sito per designer, ma se si guarda in maniera accurata è possibile scorgere anche utili informazioni per capire come funziona il linguaggio di programmazione e come sono eseguite le applicazioni rappresentate dalle immagini; alcuni
esempi possono chiarire i concetti di base.
L'interpretazione dei programmi è guidata da un
puntatore, che si muove intorno all'immagine partendo dal pixel in alto a sinistra. Il puntatore, che si sposta da una regione colorata alla successiva, può avere quattro direzioni (alto, basso, sinistra, destra) e può cambiare in base ai colori che si incontrano nell'immagine. Esistono venti colori per cui è definito un comportamento, mentre per gli altri l'implementazione è demandata al
tool che si sta utilizzando.
Le
variabili sono conservate in memoria come interi con segno, in un singolo stack, ma è possibile anche leggere o stampare valori di caratteri Unicode utilizzando comandi appositi. Per ulteriori informazioni sull'argomento si consiglia la consultazione del
sito ufficiale del progetto.