Abbiamo interfacce intuitive, intelligenze artificiali che suggeriscono funzioni, debugger grafici, ambienti cloud e framework che automatizzano quasi tutto.
Ma c’è una domanda affascinante che vale la pena porsi: come si
programmava prima?
Per capirlo davvero bisogna dimenticare l’idea moderna del computer come oggetto quotidiano.
I primi programmatori lavoravano in un mondo completamente diverso, fatto di macchine gigantesche, memoria limitatissima e processi lentissimi.
Programmare non era soltanto scrivere codice: era quasi un
esercizio di ingegneria mentale.
Negli anni ’40 e ’50, i computer occupavano intere stanze. Macchine come l’ENIAC o l’UNIVAC non avevano monitor moderni, mouse o tastiere come li intendiamo oggi. Molte operazioni venivano eseguite attraverso pannelli fisici, cavi e interruttori.
Per modificare un programma, a volte era necessario
riconfigurare manualmente la macchina.
Il concetto stesso di “software” era ancora embrionale. Non esistevano sistemi operativi evoluti, né interfacce grafiche.
Ogni istruzione doveva
essere scritta in linguaggio macchina: una lunga sequenza di numeri binari che
rappresentavano operazioni specifiche per il processore.
Immaginiamo per un momento cosa significasse davvero.
Oggi possiamo scrivere: print("Hello World")
Negli anni iniziali dell’informatica, invece, il programmatore doveva
conoscere direttamente i codici numerici associati alle istruzioni della CPU.
Un singolo errore significava il fallimento dell’intero programma.
Non esisteva il lusso dell’immediatezza.
Molti programmi venivano inseriti tramite schede perforate: cartoncini con piccoli fori che rappresentavano dati e istruzioni.
Ogni scheda conteneva una
linea di codice. Se una scheda cadeva a terra e si mescolava con le altre, il
programmatore rischiava di perdere ore — o giorni — di lavoro.
Le immagini dei vecchi laboratori informatici mostrano spesso persone con
enormi pile di schede in mano. Non è una caricatura: era la normalità.
Il processo era lento e rigoroso. Il programmatore preparava il codice, lo consegnava agli operatori del computer e attendeva il risultato.
A volte
l’esecuzione avveniva ore dopo. Se il programma conteneva un errore, bisognava
correggere le schede e ricominciare da capo.
Questo cambiava completamente il modo di pensare.
Oggi siamo abituati a test continui: scriviamo una riga, eseguiamo il programma, correggiamo immediatamente. I pionieri dell’informatica, invece, dovevano prevedere tutto in anticipo.
La programmazione richiedeva disciplina
estrema, pianificazione e una comprensione profonda dell’hardware.
Non sorprende che i primi programmatori fossero spesso anche matematici,
fisici o ingegneri.
Con il tempo nacquero i linguaggi assembly, che resero il lavoro leggermente più umano. Invece di scrivere solo numeri binari, si potevano usare abbreviazioni simboliche per rappresentare istruzioni.
Era comunque complesso,
ma rappresentò una rivoluzione enorme.
Poi arrivarono i linguaggi ad alto livello.
FORTRAN, sviluppato negli anni ’50, fu uno dei primi grandi cambiamenti. Permetteva di scrivere formule matematiche in modo più leggibile, rendendo la programmazione accessibile a un numero maggiore di persone.
Poco dopo
arrivarono COBOL, pensato per il mondo aziendale, e Lisp, che avrebbe
influenzato profondamente la ricerca sull’intelligenza artificiale.
<<L'autore di questo articolo, oggi nel 2026, è uno degli ultimi esperti programmatori COBOL, con il quale ha progettato applicazioni che hanno attraversato quattro decenni.>>
Ogni linguaggio rifletteva una nuova idea: il computer non doveva essere
capito solo dalla macchina, ma anche dall’essere umano.
Negli anni ’70 e ’80, con la nascita dei personal computer, programmare
iniziò lentamente a diventare un’attività più diffusa. Computer come il
Commodore 64, lo ZX Spectrum o l’Apple II permisero a intere generazioni di
imparare il BASIC direttamente da casa.
Ed è qui che emerge un aspetto interessante: molti utenti di quei computer
erano anche programmatori, almeno in parte.
Accendevi il computer e spesso ti trovavi direttamente davanti a un prompt di programmazione. Non esisteva ancora la netta separazione moderna tra “utente” e “sviluppatore”.
Chi usava il computer imparava inevitabilmente
qualcosa sul suo funzionamento interno.
Le riviste dell’epoca pubblicavano pagine intere di codice da copiare
manualmente. Ragazzi e appassionati trascorrevano pomeriggi interi a
trascrivere programmi riga per riga. Bastava dimenticare un carattere per
compromettere tutto.
Eppure c’era qualcosa di profondamente educativo in quel processo.
Programmare prima significava comprendere i limiti reali della macchina. La memoria era preziosa. Ogni byte contava.
Gli sviluppatori ottimizzavano
continuamente il codice perché i computer avevano risorse minime rispetto agli
standard attuali.
Molti videogiochi storici giravano con pochissimi kilobyte di memoria.
Alcuni programmatori riuscivano a creare effetti sorprendenti sfruttando
trucchi ingegnosi e una conoscenza quasi intima dell’hardware.
Oggi abbiamo computer milioni di volte più potenti, ma spesso utilizziamo enormi quantità di risorse per compiti relativamente semplici.
Questo non
significa che la programmazione moderna sia “peggiore”, ma sicuramente è
diversa.
Un altro elemento fondamentale era l’assenza di Internet.
Oggi, quando un programmatore incontra un problema, può cercare soluzioni online in pochi secondi. In passato non esistevano forum, tutorial video o documentazione immediatamente accessibile.
Bisognava studiare manuali tecnici,
sperimentare e confrontarsi direttamente con altre persone.
Questo rendeva l’apprendimento più lento, ma forse anche più profondo.
Chi programmava doveva sviluppare una forma di autonomia mentale molto
forte. Non c’erano scorciatoie immediate. Ogni soluzione richiedeva
comprensione reale.
Naturalmente, non bisogna idealizzare il passato. Programmare prima era
anche frustrante, faticoso e incredibilmente limitante. Molte attività che oggi
richiedono pochi minuti potevano richiedere settimane.
Eppure, guardando indietro, c’è qualcosa di affascinante in quell’epoca
pionieristica.
Ogni riga di codice sembrava avere peso. Ogni programma rappresentava una conquista tecnica e intellettuale.
I programmatori non lavoravano sopra strati
infiniti di astrazione: erano molto più vicini alla macchina.
Forse è proprio questo il punto più interessante.
La storia della programmazione non è solo l’evoluzione dei computer, ma anche l’evoluzione del rapporto tra esseri umani e tecnologia.
Siamo passati
dal dover parlare il linguaggio delle macchine al costruire macchine che
cercano di comprendere il nostro.
E tutto è iniziato con persone che perforavano schede di cartone,
scrivevano codice senza schermo e immaginavano un futuro che allora sembrava
fantascienza.

Nessun commento:
Posta un commento