Non è raro per chi è lontano dal mondo informatico vedere nel programmatore come una sorta di supereroe, un intermediario tra l’essere umano e la macchina, colui che piega un computer al suo volere a colpi di codice. In realtà, vedendo le cose un po’ più da vicino parte della magia svanisce, anzi in certi casi ci può essere il sospetto che chi ha il sopravvento sia la macchina da cui ci difendiamo con patch e service pack. Al di là delle considerazioni di chi vede la programmazione dall’esterno, dobbiamo ammettere che l’approccio a questo lavoro ha radici creative, tanto da poter essere considerata un’arte.
Su questa linea si pone un recente articolo di Andrea C. Granata in cui vengono citati Donald Knuth e Theodor Adorno a supporto della tesi che la programmazione è un’arte e che occorre lasciarsi trasportare dalla propria passione e non aver timore di sperimentare e mettere continuamente in discussione quello che si è appreso.
Devo dire che concordo con questi principi, che tra l’altro dovrebbero valere per qualsiasi lavoro, anzi dovrebbero essere alla base delle proprie scelte di vita. Credo però che sia necessario ridimensionare il tutto riportandolo alla cruda realtà…
Come per ogni forma di espressione artistica anche nel caso della programmazione si presenta il classico dilemma che contrappone la vita ordinaria e la vita da artista-programmatore: da un lato la passione artistica dall’altro le esigenze economiche che spesso ti fanno scendere a compromessi.
Se ci sentiamo pienamente artisti e seguiamo il nostro compito di introdurre il caos nell’ordine, come suggerisce Adorno, credo che difficilmente troveremo un committente pronto ad assecondarci
D’accordo nello sperimentare e nell’adottare nuove tecnologie, ma non sempre questo è fattibile per diversi motivi, tra cui quelli economici. Non sempre si può buttare alle ortiche dall’oggi al domani quello che si è costruito in anni di lavoro per ricominciare daccapo inseguendo l’ispirazione di una nuova tecnologia o di un nuovo linguaggio di programmazione. Il legacy è qualcosa con cui avremo sempre da lottare.
Il guaio è che il prodotto dell’attività creativa della programmazione nel 99% dei casi non è un qualcosa da ammirare e di cui godere nell’intimo. Il risultato della programmazione è un qualcosa che deve risolvere un problema più o meno concreto e talvolta anche in contesti critici.
A differenza di un quadro, di un romanzo, di un brano musicale del quale possiamo apprezzare la creatività dell’artista, la componente creativa di un software nella maggior parte dei casi rimane ignorata sia da parte degli utilizzatori che da parte dei committenti. Un algoritmo che risolve brillantemente un problema ha il suo fascino, ma rimane confinato tra le pieghe dei bit che compongono il software e difficilmente riesce ad emergere. Solo un altro artista-programmatore può apprezzarlo.
In sintesi, la programmazione è un’arte ma non fine a se stessa. Se intendiamo seguire la sola ispirazione artistica nella realizzazione del software dobbiamo essere pronti ad una vita da bohémien.