Go è un linguaggio di programmazione ad alto livello compilato e tipizzato staticamente, progettato da Robert Griesemer, Rob Pike e Ken Thompson presso Google.

Sintatticamente simile al C, dispone anche di sicurezza di memoria, garbage collection, tipizzazione strutturale e concorrenza in stile CSP. Spesso ci si riferisce a lui come a Golang a causa del suo precedente nome di dominio, golang.org, ma il suo nome corretto è Go.

Esistono due implementazioni principali:

  • La toolchain del compilatore "gc" di Google, self-hosting, destinata a più sistemi operativi e WebAssembly.
  • gofrontend, un frontend per altri compilatori, con la libreria libgo. Con GCC la combinazione è gccgo; con LLVM la combinazione è gollvm.

Un compilatore in sorgente di terze parti, GopherJS, compila Go in JavaScript per lo sviluppo web front-end.

Storia

Go è stato progettato da Google nel 2007 per migliorare la produttività nella programmazione in un'era di macchine multicore, connesse in rete e con ampie basi di codice. I progettisti volevano affrontare le critiche rivolte ad altri linguaggi in uso a Google, mantenendo però le loro caratteristiche utili:

  • Tipizzazione statica ed efficienza in fase di esecuzione (come il C)
  • Leggibilità e usabilità (come Python)
  • Reti ad alte prestazioni e multiprocessing

I progettisti erano principalmente motivati dalla loro comune avversione per il C .

Go è stato annunciato pubblicamente nel novembre 2009 e la versione 1.0 è stata rilasciata nel marzo 2012. Go è ampiamente utilizzato in produzione presso Google e in molte altre organizzazioni e progetti open-source.

Marchio e stile

La mascotte Gopher è stata introdotta nel 2009 per il lancio open-source del linguaggio. Il design, realizzato da Renée French, è stato ispirato da una promozione del WFMU risalente al 2000.

Nel novembre 2016, i caratteri tipografici Go e Go Mono sono stati rilasciati dai designer Charles Bigelow e Kris Holmes, appositamente per il progetto Go. Go è un carattere senza grazie umanista simile al Lucida Grande, mentre Go Mono è a larghezza fissa. Entrambi i font aderiscono al set di caratteri WGL4 e sono stati progettati per essere leggibili, con una grande altezza-x e forme delle lettere distintive. Sia Go che Go Mono rispettano lo standard DIN 1450, includendo uno zero barrato, una l minuscola con una coda e una I maiuscola con serif.

Nell'aprile 2018, il logo originale è stato ridisegnato dal designer di marchi Adam Smith. Il nuovo logo è un moderno e stilizzato "GO" inclinato verso destra con linee aerodinamiche che lo seguono. La mascotte del Gopher è rimasta la stessa.

Caratteristiche principali

Go soddisfa le esigenze della programmazione concorrente ed è stato progettato per ottimizzare i tempi di compilazione anche per hardware modesti. La sintassi è vicina al C eccetto per la dichiarazione dei tipi e per la mancanza di parentesi tonde nei costrutti for e if. Ha un sistema di garbage collection che si occupa autonomamente della gestione della memoria. Non include l'intercettazione di eccezioni, l'eredità dei tipi, le asserzioni e l'overloading dei metodi.

Esempio

Hello World in Go:

Note

Altri progetti

  • Wikimedia Commons contiene immagini o altri file su Go

Collegamenti esterni

  • (EN) Sito ufficiale, su go.dev.
  • The Go Programming Language (canale), su YouTube.
  • (EN) Nick Tabor, Go, su Enciclopedia Britannica, Encyclopædia Britannica, Inc.
  • (EN) Go, su GitHub.
  • Sito di segnalazione bug, su go-review.googlesource.com.
  • Sito di risorse dedicate a Go, su go-lang.cat-v.org.

Programmieren mit Go/golang

Introduction to GO Programming Language Beginner's Guide Human

Go Die effiziente und vielseitige Programmiersprache für moderne

Let’s Go With The Go Programming Language Avenga

Sito Go.dev