Predstavljeno izdanje programskog jezika Idi 1.14, koji razvija Google uz sudjelovanje zajednice kao hibridno rješenje koje kombinira visoke performanse kompiliranih jezika s prednostima skriptnih jezika kao što su lakoća pisanja koda, brzina razvoja i zaštita od pogrešaka. Šifra projekta distribuira pod BSD licencom.
Sintaksa Go-a temelji se na poznatim elementima jezika C uz neke posuđenice iz jezika Python. Jezik je prilično koncizan, ali je kod lako čitljiv i razumljiv. Go kod je kompajliran u samostalne binarne izvršne datoteke koje se izvode izvorno bez korištenja virtualnog stroja (profiliranje, otklanjanje pogrešaka i drugi podsustavi za otkrivanje problema tijekom izvođenja integrirani su kao komponente vremena izvođenja), što vam omogućuje postizanje performansi usporedivih s C programima.
Projekt je inicijalno razvijen s ciljem programiranja s više niti i učinkovitog rada na sustavima s više jezgri, uključujući pružanje sredstava na razini operatera za organiziranje paralelnog računanja i interakcije između metoda koje se paralelno izvode. Jezik također pruža ugrađenu zaštitu od previše dodijeljenih memorijskih blokova i pruža mogućnost korištenja skupljača smeća.
Novi sustav modula u naredbi "go" proglašen je spremnim za opću upotrebu, omogućen prema zadanim postavkama i preporučen za upravljanje ovisnostima umjesto GOPATH-a. Novi sustav modula ima integriranu podršku za upravljanje verzijama, mogućnosti isporuke paketa i poboljšano upravljanje ovisnostima. S modulima, programeri više nisu vezani za rad unutar GOPATH stabla, mogu eksplicitno definirati verzionirane ovisnosti i stvarati ponovljive verzije.
Dodano podrška za ugradnju sučelja s preklapajućim skupom metoda. Metode iz ugrađenog sučelja sada mogu imati ista imena i potpise kao metode u postojećim sučeljima. Eksplicitno deklarirane metode ostaju jedinstvene kao i prije.
Izvedba "defer" izraza je poboljšana, čineći ga gotovo jednako brzim kao izravno pozivanje odgođene funkcije, dopuštajući odgođeno izvršavanje funkcije u kodu koji je osjetljiv na izvedbu.
Omogućeno je asinkrono preuzimanje korutina (goroutine) - petlje koje ne sadrže pozive funkcija sada potencijalno mogu dovesti do zastoja planera ili odgoditi početak skupljanja smeća.
Učinkovitost sustava dodjele memorijskih stranica je poboljšana i sada postoji značajno manje sukoba oko zaključavanja u konfiguracijama s velikim GOMAXPROCS vrijednostima. Rezultat je smanjena latencija i povećana propusnost uz istovremenu intenzivnu distribuciju velikih blokova memorije.
Zaključavanje je optimizirano i broj kontekstnih prekidača je smanjen prilikom pokretanja internih mjerača vremena koji se koriste u funkcijama time.After, time.Tick, net.Conn.SetDeadline.
U naredbi go, zastavica “-mod=vendor” omogućena je prema zadanim postavkama ako postoji direktorij dobavljača u korijenu, namijenjen za isporuku vanjskih ovisnosti povezanih s određenim dobavljačem. Dodana je zasebna zastavica "-mod=mod" za učitavanje modula iz predmemorije modula umjesto iz direktorija "dobavljač". Ako je datoteka go.mod samo za čitanje, zastavica "-mod=readonly" postavljena je prema zadanim postavkama ako ne postoji glavni direktorij "dobavljač". Dodana je zastavica "-modfile=file" za određivanje alternativne go.mod datoteke umjesto one u korijenskom direktoriju modula.
Dodana je varijabla okruženja GOINSECURE, kada je postavljena, naredba go ne zahtijeva upotrebu HTTPS-a i preskače provjeru certifikata prilikom izravnog učitavanja modula.
Kompajler je dodao oznaku "-d=checkptr", omogućenu prema zadanim postavkama, za provjeru usklađenosti koda s pravilima za sigurnu upotrebu unsafe.Pointer.
Novi paket je uključen u isporuku hash/maphash s nekriptografskim hash funkcijama za izradu hash tablica za proizvoljne nizove bajtova ili nizove.
Dodana je eksperimentalna podrška za 64-bitnu RISC-V platformu na Linuxu.
Dodana podrška za FreeBSD na 64-bitnim ARM sustavima.