Il trend dei linguaggi di programmazione

Questo post differisce dai consueti articoli del blog in quanto andremo a vedere quali sono le tendenze nei linguaggi di programmazione, cioè quali sono quei linguaggi che negli anni hanno avuto una minor o maggior diffusione. Per analizzare questa tendenza utilizzeremo come fonte il sito della TIOBE Software (raggiungibile all'url http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html), la quale tiene traccia dell'utilizzo dei maggiori linguaggi di programmazione utilizzando il cosiddetto TIOBE Programming Community index.Tenere traccia della diffusione di un linguaggio piuttosto che di un altro è di fondamentale importanza per un professionista che opera nell'ambito del Software Development, in quanto gli consente di capire se il suo bagaglio di conoscenze è attuale e competitivo nel panorama odierno dell'IT.

Il Resource Description Framework (RDF)
Che cos’è il Clustering?
Text Mining: estrarre informazioni dal testo

Questo post differisce dai consueti articoli del blog in quanto andremo a vedere quali sono le tendenze nei linguaggi di programmazione, cioè quali sono quei linguaggi che negli anni hanno avuto una minor o maggior diffusione. Per analizzare questa tendenza illustreremo gli indici e relative classifiche più popolari che sono consultabili in rete.

TIOBE Index

Il sito della TIOBE Software (raggiungibile all’url http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html) tiene traccia dell’utilizzo dei maggiori linguaggi di programmazione utilizzando il cosiddetto TIOBE Programming Community index.

Tenere traccia della diffusione di un linguaggio piuttosto che di un altro è di fondamentale importanza per un professionista che opera nell’ambito del Software Development, in quanto gli consente di capire se il suo bagaglio di conoscenze è attuale e competitivo nel panorama odierno dell’IT.

Questo indice misura la popolarità di un linguaggio ed è aggiornato ogni mese. Il rating calcolato dall’indice si basa sul numero di ingegneri (o comunque esperti) con skill sul linguaggio di programmazione preso in esame, sui corsi disponibili e sui software di terze parti. Per calcolare questo indice si utilizzano i principali motori di ricerca (Google, Yahoo, Bing, Baidu, etc…) e gli si sottopone la seguente query :

+"<language> programming"

dove language è il linguaggio da ricercare. I risultati ottenuti vengono normalizzati e pesati secondo il motore utilizzato (ad esempio Google ha una maggiore rilevanza).

Per poter essere incluso nell’indice un linguaggio di programmazione deve soddisfare due regole:

  • avere una propria voce in Wikipedia che ne definisce lo stato di linguaggio di programmazione, ad esempio ColdFusion, (Ruby on) Rails, Excel, Cocoa, ASP e AJAX ne sono esclusi;
  • il linguaggio deve essere Turing Completo o Equivalente (http://it.wikipedia.org/wiki/Turing_equivalenza), ad esempio HTML e XML non lo sono.

Il sito propone varie statistiche tra le quali un trend storico dei linguaggi:

Trend dei linguaggi di programmazione

Trend dei linguaggi di programmazione

Ed una tabella con la classifica recente degli stessi:

Classifica dell'utilizzo dei linguaggi di programmazione

Classifica dell’utilizzo dei linguaggi di programmazione

Un’altra tabella interessante è la seguente:Il nostro amato/odiato Java è il linguaggio più utilizzato seguito a stretto giro dal sempreverde C. C# e Objective-C sono invece quelli che mostrano un trend di crescita maggiore. Linguaggi come Visual Basic, Perl e Delphi mostrano ormai i primi sintomi di un declino ormai futuro. Ruby invece dopo una impennata avuta tra il 2006 e 2007 sembra non aver mantenuto le promesse iniziali che lo davano come il nuovo must ed è in calo. Anche il PHP mostra una netta flessione ma rimane in quarta posizione ed a mio avviso è il linguaggio principe per la programmazione Web-Oriented.

CategoryRatings May 2011Delta May 2010
Object-Oriented Languages58.6%+4.2%
Procedural Languages36.4%-4.5%
Functional Languages3.6%+0.5%
Logical Languages1.4%-0.2%

la quale mostra l’andamento per categoria di linguaggio, con l’ascesa di quelli Object-Oriented, e quest’altra tabella:

CategoryRatings May 2011Delta May 2010
Statically Typed Languages65.7%+2.8%
Dynamically Typed Languages34.3%-2.8%

che mostra l’andamento dei linguaggi tipizzati staticamente (tipo Java e C) con quelli tipizzati dinamicamente (tipo PHP e Python).

 

GitHub

Sul noto sito di hosting di progetti software Github è disponibile l’elenco dei linguaggi utilizzati per i progetti ospitati presso i loro server (da notare come siano orientati esclusivamente al mondo Open Source) e visualizzabile all’url:

https://github.com/showcases/programming-languages

Mentre all’url:

http://githut.info/

è possibile visualizzare una classifica dei linguaggi più utilizzati sulla piattaforma GitHub.

 

Stack Overflow

Ogni anno il popolare sito StackOverflow raccoglie le risposte di oltre 50 mila sviluppatori e propone una survey:

http://stackoverflow.com/research/developer-survey-2016

Per quanto riguarda i linguaggi full-stack (cioè quei linguaggi che possono essere usati per tutti i layer di un’applicazione web, quindi dal Data Modeling alla User Interface) abbiamo:

Linguaggi per sviluppo full-stack

Linguaggi per sviluppo full-stack

 

IEEE Spectrum

Lo IEEE spectrum è invece un indice ottenuto combinando 12 diverse metriche:

http://spectrum.ieee.org/computing/software/the-2016-top-programming-languages

Per il 2016 abbiamo questa classifica per le prime 10 posizioni:

Classifica IEE Spectrum

Classifica IEE Spectrum

PYPL (PopularitY of Programming Language)

L’indice è stato creato analizzando la frequenza di Tutorial di un particolare linguaggio di programmazione cercato su Google. Quanto più un tutorial è cercato, tanto più popolare il linguaggio viene considerato. Si tratta di un indicatore importante. I dati grezzi vengono estratti da Google Trends.

Se si crede nella conoscenza collettiva, la popolarità dell’indice PYPL può aiutare a decidere il linguaggio da studiare, o quale usare in un nuovo progetto software:

http://pypl.github.io/PYPL.html

 

 

 

 

COMMENTS

WORDPRESS: 0