Che cos'è Go?

Completato

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