Tom Armitage offre un punto di vista sull’attività di scrivere software.
Chi non si è mai posto il problema di come nasca il software spesso crede che sia un’attività di tipo prettamente tecnico, quasi meccanico.
Chi, sempre esterno al mondo della programmazione, ha visto all’opera alcuni programmatori spesso li definisce artisti, per come riescono ad utilizzare la creatività per risolvere i problemi (è capitato molte volte anche a me di sentirmi definire tale).
Chi scrive software probabilmente non si riconosce in nessuna delle due categorie.
Armitage nella sua trattazione paragona l’attività di programmare a quella dell’architetto, che deve bilanciare la parte ingegneristica-strutturale con quella estetica. Questa definizione probabilmente viene da una concezione piuttosto recente e minoritaria secondo la quale il software debba essere bello o di design prima ancora che utile, sicuro o efficiente.
L’artista crea perché ispirato o perché vuole trasmettere un’idea o un messaggio attraverso la sua arte; il programmatore crea per risolvere un problema.
Quindi il programmatore non è un artista, ma un solutore, più vicino all’enigmistica classica (quella che non comprende i cruciverba e assimilati, per intenderci) che all’arte.
Ci sono delle affinità nel modus operandi di artisti e programmatori, ma le ragioni che li muovono e gli scopi ultimi divergono decisamente.
La programmazione obbliga a scomporre iterativamente (o ricorsivamente, se si è bravi) i problemi fino ad arrivare al problema atomico, che si risolve con una singola riga di codice, tenendo sempre ben presente il problema più grosso e la conseguenza di quella riga di codice in campo locale e generale. Insomma, si lavora con un occhio al microscopio e l’altro al telescopio.
Indubbiamente la programmazione richiede multidisciplinarità. Oltre al linguaggio e alla piattaforma su cui si scrive, bisogna avere delle conoscenze di matematica (con particolare riferimento al calcolo combinatorio), comunicazione dati, sistemi operativi, archiviazione e sicurezza. A queste vanno aggiunte le discipline relative all’oggetto del software: negli anni mi sono dovuto imparare i computi metrici, la gestione dei biglietti SIAE, la contabilità, la produzione dei cartoni ondulati, le strategie di marketing, i metodi per approcciare clienti e fornitori, la gestione dei pazienti e un sacco di altre cose.
In una cosa Armitage ha ragione: i linguaggi informatici sono paragonabili a quelli umani. Una persona che parla bene una lingua lo fa quando inizia a pensare in quella lingua e ad usare parole o costrutti che non sono presenti nelle grammatiche. Analogamente, il bravo programmatore deve sapere anticipare il comportamento del computer quando scrive un blocco di codice. Deve sapere se la query che sta lanciando verrà eseguita dal server in una frazione di secondo oppure lo metterà in ginocchio.
Per rispondere quindi alla domanda del titolo, no non credo che scrivere software sia un’arte. L’ultima prova? Provate a far scegliere i colori dell’interfaccia utente ad un programmatore.
Lascia un commento