Perché programmare viene in genere considerata un’attività difficile?
Molti pensano che scrivere programmare sia difficile da imparare se non si è portati.
Sono tra coloro che pensano che tutto si può imparare, data la necessaria dose di volontà e tempo a disposizione. Tuttavia riconosco che ci vuole una certa predisposizione, in particolare per la logica e la matematica, per diventare un buon programmatore.
Forse una risposta può venire da un articolo di Edsger Dijkstra, informatico olandese Premio Turing nel 1972, intitolato The Humble Programmer.
Nell’articolo Dijkstra spiega che la programmazione è una delle attività intellettualmente più impegnative perché è necessario tenere a mente contemporaneamente più livelli di astrazione: dal più basso, quello del codice, al più alto, l’interfaccia presentata all’utilizzatore, passando per una serie di livelli imposti dalla piattaforma sulla quale si sta lavorando e dall’architettura dell’applicazione.
In effetti è un’attività che richiede molta concentrazione per tempi prolungati.
Se si è bravi ad utilizzare concetti quali l’incapsulazione e l’indipendenza tra moduli, la complessità si riduce e diminuiscono i livelli da tenere a mente contemporaneamente, ma non c’è dubbio che sia comunque un’attività impegnativa. Per questo secondo Dijkstra il programmatore deve approciarla con la massima umiltà possibile.
Questo spiega, ad esempio, perché non sia così semplice rimpiazzare un programmatore in azienda: il codice è solo uno dei livelli di astrazione, gli altri risiedono nella mente di chi lo scrive.
E’ un articolo saggio e ancora attuale: mentre la potenza di elaborazione dei computer cresce (e i nostri cervelli no!), dovremmo adottare gli strumenti migliori (linguaggi di programmazione semplici ed eleganti) e trovare soluzioni gestibili.
Senza contare che porsi con umiltà nei confronti di attività impegnative può aiutare non solo nella programmazione.
#1 di Damien il luglio 15, 2011 - 7:45
I agree with each and every word you say!
Your work deserves being known!
#2 di Albegor il luglio 15, 2011 - 9:14
Thanks Damien!
Dijkstra was a real giant in informatics and computer science.