martedì 26 agosto 2008

“Only a good understanding of the ideas behind the language facilities leads to mastery" (part 2)

Nel 1722 J.S.Bach incomincia a scrivere il primo dei due libri formanti il Das Wohltemperirte Clavier, oder Praeludia, und Fugen durch alle Tone und Semitonia ... con "clavier", raccolta di preludi e fughe che coprono tutte e ventiquattro le tonalità (il secondo libro lo finirà 22 anni dopo nel 1744).
Bach giustifica quest’opera dicendo che l’ha scritta “per l'uso e il godimento di tutti i giovani musicisti desiderosi di imparare […]”. L’ascolto di questi due volumi è qualcosa di straordinariamente appagante. Dà un senso estremo di organizzazione, pulizia e tutto sembra scorrere sostenuto da una qualche forma di armonia con il mondo e con la natura.
Spesso, quando scrivo codice, ascolto questi 24 preludi e fughe. Mi danno un senso di tranquillità e mi aiutano a scrivere un software più “armonico”.
In un software di questo tipo, le istruzioni scorrono via amalgamandosi in un tutto. Il mio maestro mi ripeteva sempre che un codice bello da vedere, è sempre anche quello che funziona meglio, ed io sono pienamente d’accordo con lui. Un codice armonioso, musicale, non pasticciato, si rivela al primo sguardo di un occhio allenato a cercare la bellezza e non soltanto la funzionalità.
Bach era pienamente consapevole di questa ricerca della bellezza, infatti, oltre ad inseguirla nella sua musica, era solito adornare ed abbellire i suoi spartiti con frasi e disegni decorativi.
Per concludere, tornando alla frase di Stroustrup, una filologia di un linguaggio è essenziale per eccellere in quello che è il nostro mezzo di espressione, e solo attraverso la profonda conoscenza di quelle idee che hanno plasmato un linguaggio è possibile apprezzarene pienamente la bellezza. Dopo tutto Keats aveva ragione: “Bellezza è verità, verità è bellezza”…

Luca Ciciriello

1 commento:

gldm ha detto...

visto che sei un esteta del codice, apri l'interprete Python (che certamente avrai installato nel tuo sistema) e digita:
import this