Che cos'è Go?
Go è un linguaggio di programmazione sviluppato da Google. Annunciato nel 2009 come progetto open source da Robert Griesemer, Rob Pike e Ken Alt, Da allora Go è stato usato per lo sviluppo di altre tecnologie note come Docker, Kubernetes e Terraform. Sebbene Go venga usato in modo prevalente nel software sul lato server e cloud, si tratta di un linguaggio per utilizzo generico con numerosi casi d'uso.
Go è un linguaggio espressivo, conciso e pulito. È progettato per essere idiomatico e quindi consentire ai programmatori di scrivere codice efficiente e affidabile con la massima produttività. I programmi scritti in Go possono essere eseguiti in sistemi Unix, ad esempio Linux e macOS, e in Windows. Go è in parte noto per gli esclusivi meccanismi di concorrenza che semplicano la scrittura di programmi in grado di sfruttare contemporaneamente più core. Si tratta principalmente di un linguaggio staticamente e fortemente tipizzato e ciò significa che i tipi di variabili sono noti in fase di compilazione. Tuttavia, dispone anche di alcune funzionalità dinamicamente tipizzate.
Secondo la classifica dell'indice TIOBE, Go è stato il linguaggio di programmazione dell'anno nel 2009 e nel 2016. Sebbene abbia raggiunto il suo apice nel 2016, Go continua ad avere una valutazione alta. In base ai risultati del sondaggio annuale Stack Overflow Developer Survey, Go continua a mantenere una delle prime posizioni come linguaggio più apprezzato.
Go presenta molte similitudini con C ed eredita molti aspetti della sintassi C, come le istruzioni del flusso di controllo, i tipi di dati di base, i puntatori e altri elementi. La sintassi e la semantica del linguaggio vanno tuttavia oltre quelle di C. Presenta anche alcune similitudini con Java, C#, Python e altri linguaggi. In generale, Go tende a prendere in prestito e adattare le funzionalità di altri linguaggi di programmazione, pur eliminando la maggior parte della complessità. Ad esempio, è possibile usare alcune funzionalità di programmazione orientata a oggetti e schemi progettuali in Go, ma il paradigma orientato a oggetti completo non è interamente implementato. Il motivo verrà illustrato più avanti in questo percorso di apprendimento.
Principi di Go
Di seguito sono descritti i principali vantaggi sottostanti del linguaggio di programmazione Go:
- La licenza Go è al 100% open source.
- I programmi Go vengono compilati in un singolo file binario autonomo, semplificando la condivisione e la distribuzione.
- Go supporta la compilazione incrociata in un'ampia gamma di piattaforme e sistemi operativi.
- Go è progettato per mantenere il linguaggio semplice e con dimensioni contenute, nonché per eseguire più operazioni con un minor numero di righe di codice.
- La concorrenza è un elemento di prima classe e consente l'esecuzione di qualsiasi funzione come thread leggero con un numero di attività ridotto per il programmatore.
- Go offre la gestione automatica della memoria, inclusa la Garbage Collection.
- La compilazione e l'esecuzione sono rapide.
- Go richiede che venga usato tutto il codice o verrà generato un errore.
- È prevista una formattazione ufficiale che consente di mantenere la coerenza tra i progetti.
- Go dispone di una libreria standard completa di notevoli dimensioni e molte applicazioni possono essere compilate senza dipendenze di terze parti.
- Go garantisce la compatibilità con le versioni precedenti del linguaggio.
Casi d'uso di Go
- Applicazioni a livello di sistema
- Applicazioni Web
- Applicazioni native del cloud
- Utilità e strumenti da riga di comando
- Sistemi distribuiti
- Implementazioni di database