La scrittura, la stampa, i caratteri e i font: “programmare una parola”

Scrivere a mano è sempre stato il modo più semplice ed economico di scrivere. Incidere o depositare “colori” era il modo per scrivere.
I problemi principali da sempre 3: trasportabilità, riutilizzo e copia.
La famosa tavoletta di cera era riutilizzabile, la “carta” (di papiro, di pelle, di legno o di …) era trasportabile ma spesso cara.
Pochissimi sapevano leggere, meno sapevano scrivere, inoltre realizzare testi in più copie (copiare) spesso non serviva.
Per poter realizzare più copie, col tempo, si è passati dalla scrittura a mano, alla stampa. Inizialmente i caratteri venivano incisi, spesso in legno, delle dimensioni che servivano, con lo stile che serviva.
Per “stampe personali” arrivò la macchina da scrivere. Serviva a scrivere più veloce e in maniera leggibile, poteva fare almeno una copia, grazie alla carta carbone, si potevano “correggere errori” con il bianchetto, si potevano riscrivere porzioni (ad es. solo pagina 2).
Il salto effettuato con l’avvento del digitale non è stato solo la “smaterializzazione” del supporto dove leggere/scrivere/modificare (con lo schermo posso anche decidere di non stampare o stampare dove voglio) ma soprattutto il passaggio dal carattere fisico al carattere digitale.
I caratteri digitali sono raggruppati in font.
I font hanno gradi versatilità incredibile:
i caratteri possono essere utilizzati di qualsiasi grandezza e non solo a video ma anche in stampa e mantenendo la qualità (non sono immagini e se utilizzati grandissimi non si sgranano)
i caratteri possono essere utilizzati di qualsiasi colore e non solo a video ma anche in stampa
possiamo per ogni carattere cambiare il tipo di font e questo vuol dire di ogni carattere cambiare lo stile ma soprattutto consentire semplicemente l’utilizzo di lingue con ideogrammi o caratteri per noi speciali. Possiamo in questo modo comporre frasi multilingue tenendo presente anche che alcune lingue non si scrivono/leggono come la nostra da sinistra a destra e dall’alto in basso.
In tutta questa versatilità bisogna osservare che grassetto e italico (ed anche grassetto+italiaco) non sono delle istruzioni del tipo, usa un tratto più spesso con la font normale o inclina la font normale bensì usa grassetto e usa italico significano, di quella famiglia di font, con il carattere della stessa grandezza, usa l’equivalente font grassetto e l’equivalente font italico.
Ovvero, se volessimo creare un font, dovremmo disegnare quella normale, ma anche quella grassetto, italico e grassetto+italico.
Ora sappiamo molto su la scrittura, la stampa, i caratteri e i font ma se volessimo capire di più non utilizziamo un font, non proviamo a disegnare un font ma proviamo a “programmare una parola”.
Per programmare una parola non intendo un programma moderno del tipo: utilizza il font …, seleziona la grandezza del font, seleziona il colore del font, posizionati e scrivi.
Per programmare una parola intendo, utilizzando le primitive di disegno fornite, programma (fai disegnare dal programma) una parola.
Ovviamente per una tale attività utilizzeremo la programmazione visuale. Io prediligo Scratch ma anche Snap va benissimo.
Problemi:
1) bisogna conoscere gli assi cartesiani
2) bisogna saper disegnare (segmenti) utilizzando i punti sugli assi cartesiani
3) in scratch non esiste la primitiva linea, se si insegna la necessità e come crearla si è riusciti a spiegare il concetto di codice riutilizzabile e come passare i parametri (uno dei principi fondamentali della programmazione)
4) è subito evidente la difficoltà di disegnare curve
5) bisogna inventarsi un font utilizzando linee. La scelta più semplice è utilizzare tutto maiuscolo in una sorta di primitiva font. Per quanto il tutto risulti abbastanza scontato per non incorrere nella complessità (ad esempio la O sarà un rettandolo) emergono delle difficoltà e la necessità di piccole scelte di stile. Ad esempio: come differenziare O da 0? Oppure come fare la gambetta della Q?
6) si dovrà evidenziare che caratteri così costruiti non sono larghi tutti in egual misura
7) il punto 6) implica che non sarà semplice calcolare la larghezza di una parola e di conseguenza sarà molto complesso centrarla a priori rispetto allo spazio assegnato. Non esiste un comando del tipo seleziona tutta la parola e per centrarla muovila a destra o sinistra di un po’.
8) l’importanza di predefinire correttamente sia gli spazi orizzontali (tra due lettere) che verticali (tra due linee). Pensate in questo contesto la complessità di definire tasto “semplice” come il TAB.
9) 6), 7) e 8) fanno capire la complessità della formattazione, dell’impaginare con uno stile e fare in modo che tutto (testo, fotografie, didascalie, …) dinamicamente e senza errori si aggiornino.
Capite come solo la programmazione, come solo cercare di re-inventare tutto da zero ci può far capire come funzionano realmente le cose?
Sicuramente utilizzate tutti i giorni Word. Sicuramente non avete mai percepito la complessità di sviluppare word e la complessità di gestire al meglio il testo e la versatilità dei font.
Tenete sempre presente questo: più l’informatica diventa semplice da utilizzare (front end), più diventa difficile “dietro” (back end).

Rispondi