Linguaggi
Linguaggi di programmazione

Linguaggi di Programmazione

Vi siete mai chiesti quanti linguaggi di programmazione esistono?

Avete detto tre o quattro? una decina? Un centinaio?

Nel mondo esistono all'incirca 8.000 linguaggi di programmazione.

Top 25 languages
Source: SourceForge
Naturalmente non sono usati tutti e ottomila, e non tutti sono davvero utili. Ma è un numero che sorprende e fa riflettere: perché così tanti? Se i linguaggi sono semplici strumenti, come le chiavi inglesi, perché non ce ne sono solo due o tre, i migliori, i più efficienti?

I linguaggi di programmazione nascono e muoiono, derivano gli uni dagli altri, ma in modo diverso dalle lingue naturali

Mentre le lingue naturali sono soggette a fenomeni lenti (derivazione, incrocio o abbandono), i linguaggi di programmazione nascono in maniera artificiale, in tempi relativamente rapidi, e si ispirano esplicitamente ad altri linguaggi, riprendendone i concetti o la sintassi o il lessico.

Ci sono anche fenomeni più generali - poco studiati - che sono simili a quelli che interessano le lingue naturali: succede che i programmatori che usano più linguaggi tendano a sovrapporre la sintassi e lo stile di un linguaggio su quelli dell'altro; lentamente, i responsabili della manutenzione del linguaggio si accorgono di queste tendenze generali e modificano il linguaggio aggiungendo costrutti nuovi, il che a sua volta rende sempre più facile quello stile di programmazione "prestato":

Periodic Table
Source: Raul Mishra
A volte i linguaggi nascono come invenzioni di un singolo, a volte invece sono il frutto di un intero team che lavoro pe mesi o addirittura anni prima di arrivare alle specifiche ufficiali. Questo lavoro non termina con la prima versione del linguaggio, ma continua negli anni e produce varie versioni del linguaggio. Succede così che programmi scritti nella versione 1 di un linguaggio non siano più eseguibili con la versione 2. E' un fenomeno che rende le modifiche nelle specifiche dei linguaggi piuttosto lente e conservative.

Prossimo pannello:  Nomi dei linguaggi