L’universo dei linguaggi
I dialetti di programmazione sono affascinanti nelle loro somiglianze e nelle loro differenze. Quando è possibile scegliere, le discussioni su quale sia la scelta migliore sono infinite. Più spesso non c’è molto da decidere: la piattaforma in uso detta le condizioni. Esistono comunque diversi siti dedicati al confronto di performance e alle classifiche di popolarità .
L’anno scorso è stato segnato da un nuovo linguaggio, Swift, al quale Apple si affiderà per il futuro delle sue applicazioni. Swift ha fatto molto rumore ed è entrato di forza nella top 20 della lista di popolarità dei linguaggi del Tiobe index, su tiobe.com. Un risultato notevole, se si pensa che il fratello maggiore, Objective-C, è stato fra i fanalini di coda fino a quando nel 2007 ha preso il quarantunesimo posto. Niente di speciale come inizio, ma Objective-C è stato linguaggio dell’anno nel 2011 e 2012 ed è diventato il linguaggio più attivo fra i progetti open source di Github arrivando al terzo posto nelle classifiche principali, dopo il C e Java.
L’eccellente salute di Objective-C e la residua instabilità delle beta di Swift giustificano la caduta al 23esimo posto nel Tiobe Index dello sfidante, ma è solo perché la comunità è tornata a lavorare tranquillamente nel linguaggio titolare, abbassando la priorità alla sperimentazione. La classifica è destinata a invertirsi nel tempo, ma non nell’immediato. Meglio così: abbiamo tempo per studiare e fare pratica nel nuovo linguaggio, mentre continueremo a realizzare con il vecchio.
Una situazione apparentemente simile si nota in casa Microsoft: Visual Basic 6 continua a rimanere in classifica e a piazzarsi un posto avanti a Visual Basic.net. Anche negli annunci di lavoro Visual Basic 6 si mantiene in buona posizione.
Anche se è lodevole la fedeltà degli utenti a una piattaforma stabilizzata, in questo caso non si tratta di prudenza, ma di pigrizia. Sicuramente è vero che esistono sterminate basi di codice in Visual Basic 6 e applicazioni consolidate, così come ci sono milioni di righe di codice Cobol e Rpg ancora in esercizio. Ma, mentre i mainframe stanno quietamente nel retrobottega, le applicazioni VB sono in bella mostra su desktop che non possono essere aggiornati all’ultima release di sistema e questo è un male, soprattutto con Windows.
Microsoft è passata dal modello a oggetti Com, che è quello che ha fatto la fortuna di VB, a.net per ottime ragioni: in primo luogo per tappare falle di sistema difficili da tenere sotto controllo, anche con le firme digitali sul codice.
Insomma, anche se questo non è l’anno in cui Visual Basic 6 andrà in pensione – perché quello era il 2012 – è davvero ora di cominciare a aggiornarsi e rinnovare le applicazioni, liberando gli amministratori dalla necessità di fare il downgrade di tutte le macchine per essere in grado di installare software meno sicuro.
Il punto da cui iniziare è un tutorial sulla creazione di interfacce utente con Xaml, mentre il linguaggio da considerare può essere addirittura C#. Visual Basic.net è piuttosto involuto, ancora più del suo antenato e c’è molto più codice in circolazione nel linguaggio ispirato da Java. Dovendo cambiare, si può cambiare del tutto, aprendo porte verso altri mondi.
Java in venti anni è diventato seducente come la metropolitana, ma l’indice di popolarità di langpop lo mette comunque al primo posto con un giro di distacco su Python e JavaScript. Tiobe, più prudentemente, gli assegna il secondo posto dietro al C e siamo più disposti a credere a questa classifica.
La release 8 del linguaggio creato da Gosling è ricca di funzionalità sofisticate come le versioni più recenti di C++ e C#, tanto che chi non segue le novità dell’ambiente da tempo può faticare a identificare i costrutti dei sorgenti più aggiornati. La novità più significativa sono i blocchi lambda, che abbiamo visto negli altri due linguaggi prestigiosi della famiglia con le parentesi graffe.
Il membro più scavezzacollo della famiglia, il C, rimane sempre in classifica, perché la comunità di sviluppatori C tende a essere molto presente nel web e sui forum. Si tratta, infatti, degli sviluppatori più hard core, i più dedicati e quelli che si occupano dei progetti ad alta tecnologia. Non c’è da stupirsi se hanno molto di cui discutere e su cui confrontarsi.
Riassumendo, non ci sono grandi terremoti, se non in casa Apple. Per il resto lo sviluppo mainstream su Windows è in C# e lo sviluppo cross platform e server side resta ancorato a Java.
Sui vari Unix, quello che non si può fare in C converrà farlo in Assembler o in Python, secondo la direzione della complessità tecnologica. Rimangono fuori dal quadro tanti linguaggi simpatici, come il Go di Google, ML o Erlang, che hanno nicchie molto esclusive.