Con una crescita di oltre 2 punti percentuali, capace di assicurargli un balzo di ben 40 posizioni nell'annuale graduatoria di settore stilata da Tiobe Index, Go (o Golang) si è assicurato il premio – figurativo, per alcuni versi – di linguaggio di programmazione a più rapida crescita del 2016. Ideato nel 2007 da alcuni ingegneri Google, Go è stato utilizzato per realizzare il 2,325% dei nuovi software "nati" nel corso del 2016 e, nonostante sia una percentuale di adozione ancora tutto sommato bassa, è considerato uno dei linguaggi più promettenti nel panorama dello sviluppo software.
Diversi i motivi di questo successo. Dopo una crescita piuttosto lenta nei primissimi anni di vita (il primo software realizzato con Golang risale al 2009, mentre il rilascio di Go 1.0 è del 2012), il linguaggio di programmazione si è fatto sempre più apprezzare per la facilità di apprendimento – poco lo spazio dedicato ai "tecnicismi" nella sintassi di Go – e la sua natura pragmatica. Questi i motivi che portano a credere che, nel giro di qualche anno, il linguaggio di programmazione di Google possa insediare le posizioni di vertice e battere i vari Python o Java sul fronte della facilità e immediatezza d'uso.
Che cos'è Go
Nato dalla mente di Robert Griesemer, Rob Pike e Ken Thompson, Go è un linguaggio di programmazione open source pensato per realizzare applicativi e software multipiattaforma. Volendo scendere nel dettaglio, potremmo dire che Golang è un linguaggio compilato e a tipizzazione statica e allo stesso tempo facile da leggere (quindi di alto livello), che si inserisce nel solco tracciato da altri linguaggi come C o Algol. Tra le altre caratteristiche di Golang si segnalano la garbage collection, la tipizzazione strutturata limitata e funzionalità di memory safety.
Ad onor del vero, si tratta di una combinazione di funzioni e caratteristiche che è possibile ritrovare anche in altri linguaggi. Ciò che rendere speciale Go, però, è la sua sintassi semplificata, che lo rende particolarmente immediato e intuitivo da apprendere. I tre ingegneri Google, infatti, erano alla ricerca di un linguaggio che avesse le funzionalità e la potenza di C++, ma che allo stesso tempo eliminasse tutti gli "eccessi stilistici" di quel linguaggio. Muovendo da questa precisa necessità, Robert Griesemer, Rob Pike e Ken Thompson creano Golang e iniziano a utilizzarlo per realizzare alcuni applicativi utilizzati nelle segrete stanze di Big G.
Funzionamento e sintassi di Go
Viste le ragioni che hanno portato alla sua genesi, è facile predire che la sintassi di Golang sia estremamente intuitiva e semplice da "maneggiare". Ed è effettivamente così. A differenza dei vari C e C++, dai quali prende comunque le mosse, Go adotta schemi di programmazione più consoni a un linguaggio dinamico anziché statico. L'obiettivo di questa scelta, come detto, è di rendere il codice sorgente più possibile conciso e "leggibile" (comprensibile). In fase di scrittura del codice, ad esempio, l'utilizzo di operatori combinati evita che il programmatore debba specificare la tipologia di variabile (stringa alfanumerica, numero intero e così via) che sta per utilizzare. Una stringa di codice "i := 3" equivale alla stringa "int i = 3" scritta in C.
Non mancano poi i tipi (numerici come byte, int64, float32 e così via; booleani e caratteri), così come la gestione e il rimando a librerie e pacchetti esterni (che possono essere richiamati all'interno del codice con la funzione "go get").
Possibili applicazioni di Golang
Questa struttura semplificata rende Golang particolarmente adatto alla realizzazione di determinate tipologie di software. Go, ad esempio, è ampiamente utilizzato per la creazione di applicativi web o per la gestione di server. Rientrano all'interno di questo settore API e framework minimali per applicazioni web in genere. Non avendo grandi problemi nel "girare" su diverse piattaforme operative, Go può essere utilizzato anche per realizzare applicativi ed eseguibili stand-alone, cioè in grado di funzionare autonomamente e senza che sia necessario ricorrere a dipendenze e librerie esterne (con Python, ad esempio, è necessario avere una copia del compilatore per far girare script e applicativi sul proprio PC; con Go sarà sufficiente l'eseguibile creato anche su un altro computer).
Visti gli utilizzi appena descritti, non ci si dovrà sorprendere se, al momento, quasi nessuno ha pensato a realizzare delle librerie che dotino gli applicativi realizzati in Go di un'interfaccia utente accattivante e di facile utilizzo. Per questo motivo Golang è poco indicato nel caso in cui il proprio progetto preveda la realizzazione di software dotati di una GUI accattivante e bella da vedere.