
Rivista Secondaria di secondo grado Coding Informatica
di Emanuele Bottazzi
Speciale Coding
Secondaria di 2° grado - Informatica
Cara lettrice, caro lettore,
sapevi che, secondo la Online Historical Encyclopaedia of Programming Languages, dal XVIII secolo a oggi sono stati sviluppati quasi novemila linguaggi di programmazione? In realtà oggi se ne usano molti di meno: per esempio, i progetti ospitati sulla piattaforma GitHub, usata da più di quaranta milioni di sviluppatori, sono realizzati con meno di quattrocento linguaggi diversi.
Ogni linguaggio di programmazione ha un ciclo di vita. Per prima cosa nasce, cioè viene sviluppato e poi rilasciato per l’utilizzo. Dopo il rilascio il programma non rimane così com’è, ma entra in un’ulteriore fase di crescita. Possiamo riconoscere questa fase per esempio in un linguaggio di programmazione ormai datato, ma ancora molto popolare: il C. La prima versione è stata rilasciata nel 1972, ma il suo sviluppo non si è mai fermato: negli anni ’80 ne sono state implementate varie versioni ottimizzate per diversi tipi di piattaforma (mainframe, minicomputer e così via), tanto che fu necessario stabilirne una versione standard. Lo standard ANSI C venne definito nel 1990, ma nemmeno questo fu il punto finale dell’evoluzione del linguaggio. Ulteriori versioni vennero rilasciate alla fine degli anni ’90, nel 2011 e nel 2019. Questo percorso non è ancora terminato: ancora oggi è corso di sviluppo la prossima evoluzione del C, che già entro la fine del 2021 potrebbe diventare il nuovo standard di riferimento per questo linguaggio.
Lo sviluppo di un linguaggio di programmazione può durare molto a lungo. Nel caso del C, è in corso da quasi cinquant’anni! Prima o poi, però, potrebbe emergere un nuovo linguaggio in grado di renderlo obsoleto. Questo è successo per esempio al Pascal: rilasciato nel 1970, dopo un periodo di grande diffusione (basti pensare che negli anni ’80 era il linguaggio di programmazione più insegnato nelle università) all’inizio degli anni ’90 è stato soppiantato dal C e poi dal C++. Il suo sviluppo non si è arrestato del tutto, ma oggi il Pascal si può considerare al termine del suo ciclo di vita.
Come mai esistono così tanti linguaggi di programmazione e come mai ne vengono continuamente sviluppati di nuovi, a scapito di quelli precedenti? Il motivo va cercato negli scopi per cui ciascun programma viene realizzato. Per esempio, il FORTRAN, che risale agli anni ’50, è stato creato per sostituire il coding in linguaggio macchina. L’introduzione del C++ invece è stata motivata dal desiderio di estendere il linguaggio C a un nuovo linguaggio orientato agli oggetti. Un altro successore di C e C++ è C#, introdotto nel 2000. Anch’esso è orientato agli oggetti ed è molto più versatile dei suoi predecessori.
Uno dei punti di forza del C# è permettere lo sviluppo di applicazioni multipiattaforma, cioè che possono funzionare su dispositivi diversi (per esempio Windows, Linux e Mac sui personal computer e Android o iOS sui dispositivi mobili). Infatti, uno stesso codice C# può essere richiamato da diverse interfacce grafiche ottimizzate per ciascuna piattaforma.
Per lo stesso motivo, il C# è utilizzato anche nello sviluppo di videogiochi. Per esempio, la piattaforma Unity per lo sviluppo di videogiochi in 3D utilizza C#. Questo le permette di realizzare giochi che possono essere rilasciati per Windows, Linux, Mac e dispositivi mobili. Unity è utilizzata per esempio dalla Blizzard Entertainment, che l’ha adottata per realizzare il gioco di carte collezionabili Heartstone.
Un altro vantaggio di C# è la quantità di librerie che permettono di aumentare le funzionalità del linguaggio. Per esempio, sono disponibili librerie per la gestione dei database, per lo sviluppo di programmi con multithreading (funzionalità non disponibile per esempio nel C++, che deve affidare la gestione dei processi al sistema operativo), ma anche per la simulazione di computer quantistici.