Storia dei linguaggi di programmazione
Nei primi computer a programma cablato non esistevano linguaggi di programmazione e la programmazione veniva realizzata per mezzo di spezzoni di cavi elettrici i cui terminali andavano inseriti nei connettori presenti in appositi pannelli di controllo. I primi computer a programma memorizzato erano invece programmabili soltanto in linguaggio macchina: ogni istruzione di un programma era rappresentata da un codice binario che doveva essere salvato in una cella della memoria centrale agendo su una serie di interruttori del pannello di controllo del computer.
Il primo linguaggio di programmazione ideato per programmare i calcolatori elettronici a programma memorizzato fu il linguaggio simbolico assemblativo (in inglese assembly). Le istruzioni di questo linguaggio dipendono dal computer che si deve programmare perciò, un programma scritto per un particolare computer può essere eseguito soltanto da computer dello stesso tipo. Inoltre, ad ogni istruzione del linguaggio assemblativo corrisponde una e una sola istruzione del linguaggio macchina (linguaggio a basso livello).
Per risolvere i problemi del linguaggio assemblativo vennero perciò ideati dei nuovi linguaggi che permettessero di scrivere dei programmi più comprensibili agli esseri umani e che, anziché dipendere dalle caratteristiche di un particolare computer, fossero più orientati alle esigenze degli utenti (linguaggi ad alto livello).
Nel 1957 viene rilasciato il compilatore del linguaggio FORTRAN (FORmula TRANslator) per l’IBM 704. L’uso primario di questo linguaggio è per risolvere problemi matematici e scientifici. Tra le sue doti la grande semplicità nelle funzioni di input/output e la sua succinta ed elegante codifica. Poiché questo linguaggio non dipende dalle caratteristiche della macchina (linguaggio orientato al problema), ben presto vengono realizzati compilatori FORTRAN anche per altri tipi di computer IBM e non. FORTRAN diventa così il più usato linguaggio di alto livello dell’epoca.
Nel 1958 nasce l’ALGOL (ALGOrithmic Language): un linguaggio adatto, come il FORTRAN, per applicazioni matematiche e scientifiche ma con delle caratteristiche innovative come i blocchi di istruzioni e la ricorsione. Benché questo linguaggio non abbia mai raggiunto la popolarità commerciale di FORTRAN o COBOL, è considerato il più importante linguaggio della sua epoca in termini d’influenza sui linguaggi sviluppati successivamente.
Nel 1959 nasce il COBOL (COmmon Business Oriented Language), un linguaggio commerciale istituzionale, ancora utilizzato al giorno d’oggi in moltissime aziende. E’ pensato per gestire grandi quantità di dati, ma può essere valido anche per tanti altri scopi.
Nel 1960 l’IBM annuncia l’RPG (Report Program Generator): un linguaggio per produrre tabulati a partire da file di dati, ancora usato in alcuni mainframe IBM.
Nel 1964 John Kemeny and Thomas Kurtz inventano il BASIC (Beginners’ All-purpose Symbolic Instruction Code): un linguaggio progettato per essere semplice da imparare e poter essere usato anche dai principianti. Concepito e realizzato originariamente come linguaggio compilato, molte delle sue versioni più note fanno tuttavia uso di interpreti. Una di queste, l’Altair BASIC, venne sviluppata nel 1975 da Bill Gates e Paul Allen per l’Altair 8800 e fu quindi portata su molti altri microcomputer dell’epoca.
Nel 1967 vede la luce il Simula: il primo linguaggio di programmazione orientato agli oggetti (OOP).
Nel 1968 Niklaus Wirth sviluppa il linguaggio Pascal. Derivato dall’ALGOL, ideato e ancora usato per scopi didattico-educativi, è uno dei primi linguaggi che incorpora il concetto di programmazione strutturata.
Nel 1972 Dennis Ritchie, ispirandosi al linguaggio “B” ideato nel 1969 da Ken Thompson, crea il linguaggio “C” con lo scopo di scrivere il sistema operativo UNIX. Noto per la sua semplicità, efficienza e flessibilità, questo linguaggio ha avuto e continua ad avere, a dispetto della sua età, un enorme successo in molti settori dell’informatica. Da esso derivano molti moderni linguaggi di programmazione come, per esempio C++, Java e C#.
Nel 1979 viene definito il linguaggio ADA, su iniziativa del Dipartimento della Difesa (DOD) degli Stati Uniti, per lo sviluppo di applicazioni militari.
Nel 1983 Bjarne Stroustrup dei laboratori Bell sviluppa il linguaggio C++: una estensione del “C” che permette la programmazione orientata agli oggetti.
Nel 1986 viene sviluppato il linguaggio Objective C: un’altra estensione orientata agli oggetti del “C”.
Nel 1989 viene reso disponibile il linguaggio HTML: un linguaggio per la definizione di pagine web sviluppato da Tim Berners-Lee al CERN di Ginevra.
Nel 1991 nasce Python: uno dei primi linguaggi di scripting, orientato agli oggetti e adatto allo sviluppo di applicazioni web.
Nel 1992 la Microsoft annuncia il linguaggio Visual BASIC: uno dei primi linguaggi di programmazione visuali. Questo linguaggio, derivato dal BASIC, permette la rapida creazione di applicazioni grafiche per computer che utilizzano il sistema operativo Microsoft Windows.
Nel 1993 nasce Ruby: un linguaggio di scripting orientato agli oggetti e rilasciato sotto licenza GPL.
Nel 1994 nasce il PHP: un linguaggio di scripting per la realizzazione di pagine web dinamiche rilasciato sotto licenza libera.
Nel 1995 la Sun Microsystems annuncia il linguaggio Java: una nuova estensione del “C” che permette la programmazione orientata agli oggetti. Per le sue caratteristiche, questo linguaggio ha riscosso un enorme successo tra gli sviluppatori di applicazioni distribuite e per dispositivi mobili.
Sempre nel 1995 la Netscape aggiunge al suo browser web Netscape Navigator l’interprete di un nuovo linguaggio di scripting con una sintassi simile a quella di Java: il linguaggio JavaScript.
Nel 1996 la Microsoft, come risposta alla Netscape, aggiunge al suo browser web Internet Explorer l’interprete di un nuovo linguaggio di scripting derivato dal Visual BASIC: il linguaggio VBScript.
Nel 2000 La Microsoft annuncia il linguaggio C#.Infine, nel 2006 appare Scratch: un ambiente visuale per lo sviluppo di applicazioni multimediali che non richiede alcuna conoscenza della sintassi dei tradizionali linguaggi di programmazione e può quindi essere facilmente appreso ed utilizzato anche dai neofiti.