C sorpassa Java: è il numero 1 dei linguaggi di programmazione

C supera Java in popolarità

C supera Java in popolarità

Lo “scontro” di popolarità tra C e Java è sicuramente quello più vecchio e conosciuto tra gli informatici. I due si sfidano sin dal 1995, anno in cui Java ha fatto il suo ingresso nel mercato e si è ampiamente diffuso, diventando in poco tempo uno tra i linguaggi più popolari dell’informatica.

Nel corso degli anni il primato è stato detenuto principalmente da Java, che se lo contendeva col suo rivale. Dal 2015, ultima volta in cui C è stato primo, non si è schiodato dalla punta della classifica. L’indice TIOBE , però, rivela che C ha appena superato Java, riappropriandosi della prima posizione per questo mese.

C vs. Java: le principali differenze

Anche se si sente molto parlare della sfida tra C e Java, bisogna precisare che alla domanda “qual è il linguaggio migliore?” non c’è una risposta precisa, ma dipende da ciò che si deve realizzare. I due linguaggi sono infatti profondamente diversi, e hanno entrambi pro e contro che li rendono più adatti a un task piuttosto che a un altro.

La prima, fondamentale differenza tra i due risiede nel tipo di paradigma che “implementano”. C è un linguaggio procedurale, mentre Java è un linguaggio a oggetti. Nel primo caso il concetto portante è quello di funzioni o procedure attraverso le quali il programma viene eseguito, seguendo un flusso lineare, dall’alto verso il basso (approccio top-down). Nel secondo caso, invece, al centro c’è il concetto di oggetto: il paradigma si orienta prettamente ai dati e non al flusso del programma. Al contrario del paradigma procedurale, in quello a oggetti i tipi di dato non sono definiti soltanto dalla loro “struttura”, anche dal tipo di operazioni che possono essere svolte su di essi.

Una rappresentazione schematica dei due paradigmi. Credits: AltexSoft
Una rappresentazione schematica dei due paradigmi. Credits: AltexSoft

Un’altra differenza tra i due è il livello: Java è un linguaggio di alto livello, mentre C è di medio-basso livello, in quanto è più vicino al codice macchina. Proprio per questo motivo Java è generalmente più semplice da imparare, in quanto possiede più astrazione ed è più simile al linguaggio umano. Questo implica però che C è un linguaggio più efficiente, dal momento che opera con istruzioni più vicine all’hardware.

Credits: philosophybehindcoding
Credits: philosophybehindcoding

A distinguere i due c’è anche la gestione della memoria. In C il programmatore è tenuto a gestire personalmente la memoria, utilizzando malloc e free per, rispettivamente, allocare e dis-allocare memoria. Ciò, ovviamente, diventa un’arma a doppio taglio e può essere ostico da tenere a mente se ci si avvicina per la prima volta alla programmazione. Java, al contrario, gestisce automaticamente la memoria utilizzando il garbage collector.

Cos’è l’indice TIOBE

L’indice TIOBE, il cui nome completo è TIOBE programming community index, misura la popolarità dei linguaggi di programmazione. È stato ideato da TIOBE, una società olandese specializzata in controllo di qualità del software.

Ogni mese viene calcolato l’indice di popolarità per i linguaggi di programmazione Turing-completi, decretando la posizione in classifica di ognuno. La misura viene calcolata utilizzando il numero di ricerche effettuate sui motori di ricerca che contengono il nome del linguaggio. Tra i motori di ricerca ci sono Google, Google Blogs, Yahoo!, Wikipedia e YouTube. Ognuno di essi ha un diverso punteggio o “qualifica”, che determina più o meno importanza nel calcolo per ognuno.

L'andamento della popolarità dei primi dieci linguaggi di programmazione in classifica. Credits: tiobe.com
L’andamento della popolarità dei primi dieci linguaggi di programmazione in classifica. Credits: tiobe.com

L’indice non riflette quindi il miglior linguaggio di programmazione, ma quello più popolare. Ciò significa che più sono le ricerche, corsi e offerte di lavoro relativi a un linguaggio, più il linguaggio guadagna punti. Questo, ovviamente, implica una maggiore diffusione e utilizzo di esso.

Questa misura può essere utilizzata anche per prendere delle decisioni strategiche per il mercato, studiando quale linguaggio è più conveniente adottare nello sviluppo di un nuovo software.

C al numero 1 dopo 5 anni

L’ultima volta che C era stato al primo posto era nel 2015. Questo mese, dopo ben 5 anni, ha sorpassato Java, diventando il linguaggio più popolare del momento.

C in prima posizione nella classifica di popolarità di Maggio. Credits: Jaxenter
C in prima posizione nella classifica di popolarità di Maggio. Credits: Jaxenter

L’incremento rispetto al mese precedente è stato del 2.82%. Secondo TIOBE, uno dei motivi può essere il Coronavirus. Il suo impatto sembra non avere confini, e anche l’informatica cambia le sue abitudini di conseguenza. In questo caso la motivazione va ritrovata nel fatto che vengono utilizzati molti più dispositivi medici e relativi software, scritti in C e C++. A causa di ciò, aumentano anche le richieste di skill ed esperienza in questi linguaggi.

Per lo stesso motivo, anche Python e R stanno scalando la classifica. La ricerca di un vaccino e di medicinali efficaci contro il Covid sta impattando fortemente il campo della data science, ambito in cui questi due linguaggi vanno per la maggiore.