"Hollerith card". Con licenza Pubblico dominio tramite Wikimedia Commons.
L'occasione di questo primo incontro con i calcolatori e' stata la frequenza del corso sui Calcolatori tenuto a Fisica (la laurea di Informatica ancora non esisteva) dall'ingegnere Anelli.Ricordo benissimo la prima lezione quando,dopo una breve introduzione, prese un pacco di schede con un programma e ci porto' nella stanza dove c'era il computer.
Qualche anno dopo ho fatto la tesi su "Un sistema interattivo realizzato su display grafico per l'analisi di dati in esperimenti di alta statistica" lavorando su un display grafico IBM 2250 che aveva bisogno di un computer dedicato IBM 1320 per funzionare.Questo era a sua volta collegato a un computer centrale IBM 360. Il mio relatore era il compianto Alberto Silvestri.
L'IBM 360 , a differenza del 1620, non potevamo usarlo personalmente. Era in una grande sala ed era formato da diversi armadi e casse su cui apparivano lucine lampeggianti e bobine di nastro magnetico in rapida rotazione. Proprio come si puo' vedere in qualche film d'epoca. Era una macchina che costava moltissimo e a cui avevano accesso solo gli operatori e gli ingegneri. I programmatori come me preparavano un pacco di schede e lo consegnavano all'operatore di turno allo sportello. Dopo un po' si tornava e si ritirava il pacco assieme a uno stampato coi risultati dell'esecuzione del programma.
Probabilmente adesso si direbbe che ero un hacker dell'IBM 360(o meglio un geek:non vorrei offendere i veri hackers!) e poi del 370.Riuscivo a capire dai dump della memoria alcune delle sottigliezze del sistema operativo e del compilatore.
Ho insegnato la programmazione in un linguaggio chiamato PL/1 quando Knuth stava ancora scrivendo la sua bibbia: The Art of Computer Programming.
Con un programma chiamato Wylbur finalmente sono passato dalle schede di carta all'uso di un terminale online.
La mia prima rete e' stata Decnet(una rete proprietaria della Digital): Internet doveva aspettare altri 10 anni per arrivare in Europa. Il mio primo incontro con Internet e' stato attraverso un account su un computer sperimentale (mi pare si chiamasse priam.cern.ch) che il Cern di Ginevra aveva messo su per provare la nuova tecnologia. Ci si potevano leggere i famosi newsgroups alcuni dei quali anche con immagini! Facendo una ricerca sui newsgroups di Internet trovate il mio primo posting del 1991 ovviamente il famoso "test" a misc.test.
Non e' che da allora la programmazione sia cambiata molto: infatti non facciamo che riscrivere il mitico Ciao a Tutti in sempre nuovi linguaggi. Questa mia risposta a un corrispondente che voleva cominciare a programmare in Java, riassume l'essenza della programmazione:
Il mio corrispondente:A parte gli scherzi, condivido la visione degli hacker.E sono orgoglioso di essere un programmatore(ho fatto scrivere questa come professione sulla carta d'identita'). Essere un programmatore adesso e' un po' come essere pittore al tempo di Leonardo. Cioe' essere un artigiano in un campo completamente nuovo e in fase di rapidissima evoluzione.Scrivere "Ciao a Tutti" in tanti linguaggi non mi ha certo reso uguale a Leonardo ma mi ha dato la possibilita' di osservare altri straordinari artigiani all'opera: come Tim Berners Lee ,l'inventore del Web, di cui ho potuto seguire i primi seminari sul Web al Cern, quando il Web era solo un luccichio nei suoi occhi.> oh giuseppe, > saro�scemo ma non c' ho capito niente > dove lo scrivo sto ciao a tutti?sull blocco note? > e poi cosa viene fuori?La mia risposta:Leo, non ti preoccupare se non hai capito niente. Java e' un linguaggio di programmazione e i linguaggi di programmazione (a differenza dell'HTML) non servono per parlare con le persone ma per parlare col computer, per dirgli cosa fare. Solo che i computer quelli sono davvero scemi e per fare una cosa cosi' semplice come scrivere "Ciao a tutti" ti devi: - Scaricare dalla rete un malloppazzo chiamato jdk (20M!) e installarlo sul tuo computer. - Scrivere con Notepad o Wordpad questa specie di abracadabra class CiaoATutti{ public static void main (String args[]){ System.out.println("Ciao a tutti"); } } - Salvarlo in un file di testo chiamato "CiaoATutti.java" -Dare il comando da finestra MS-DOS "javac CiaoATutti.java" - Dare il comando sempre dalla stessa finestra "java CiaoATutti" Finalmente il computer a questo punto ti dovrebbe rispondere (ammesso che sei riuscito a fare tutto in maniera perfetta) "Ciao A Tutti". Capisco la tua delusione ma la programmazione e' cosi'! Ciao, Giuseppe
Le mie idee su questo argomento sono un po' cambiate recentemente. Ci vogliono sempre 10 anni per diventare un programmatore eccellente ma ora si puo' cominciare anche prima di imparare a leggere e scrivere!
In effetti sta venendo fuori la generazione iPad che usa il computer ancor prima di andare a scuola. E' possibile insegnare a questa generazione la programmazione come un gioco che consiste nel creare immagini o animazioni con metodi completamente visuali e senza uso di linguaggi scritti? Sembrerebbe di si o almeno molti ci stanno provando.
L'idea di base e' di insegnare a programmare usando una sintassi nascosta nelle regole di
assemblaggio di oggetti grafici e animazioni .
In questo e' di grande aiuto HTML5 e Javascript che lavorando via Web sono la piattaforma
ideale.
La sintassi scritta viene presentata solo in un secondo momento quando il bambino comincia
a essere in grado di trattare il testo scritto.
A quel punto dovrebbe essere molto piu' semplice per l'aspirante programmatore capire il
significato della sintassi dei programmi scritti.
All'inizio sarebbe una semplice maniera alternativa di rappresentare il programma
che viene generata automaticamente in aggiunta a quella visuale.
In seguito l'aspirante programmatore si rende conto della facilita' di modificare
il programma usando la forma testuale: scrive "rosso" e il colore cambia senza usare un'interfaccia grafica.
Copia e incolla e puo' trasferire interi pezzi di programma scritti da altri e cosi' via.
Infine si rende conto come lo stesso programma puo' essere adattato a trattare qualsiasi
tipo di dati: non solo oggetti grafici.
A cominciare dallo stesso testo.
Puo' funzionare?
Secondo me si.
Anzi quell'eta' e' quella ideale per affrontare certi concetti che in seguito diventerebbero
sempre piu' ostici da capire e assimilare.
Inoltre l'uso della grafica elimina il problema dell'utilizzo di una lingua particolare
(quasi sempre l'inglese) nella scrittura dei programmi.
Il bambino si rende conto che parole come "while" esprimono concetti universali
di programmazione che possono essere espressi in qualsiasi lingua. La regola dei 10 anni e' sempre
valida, solo che adesso cominciando a 3 anni, significa che a 13 anni siete gia' programmatore esperto!