Go je postal javen odprtokodni projekt 10. novembra 2009. Po nekaj letih razvijanja je bila 28. marca 2012 izdana prva stabilna različica, imenovana Go 1.[13] Avtor maskote in logotipa je Renée French. Maskota je pod licenco Creative Commons Attribution 3.0.[14]
Osnovne značilnosti jezika
Go poskuša kombinirati razvoj in hitrost delovanja v dinamičnem programskem jeziku, kakršen je Python, z zmogljivostjo in varnostjo prevajanih jezikov, kot sta C ali C++. Velike datoteke se prevedejo v le nekaj sekundah in prevedena koda se izvaja skoraj tako hitro kot v jeziku C.[15]
Go ni tipičen objektno usmerjen programski jezik. Čeprav dovoljuje objektno usmerjeni slog programiranja, ne pozna hierarhičnih tipov razredov. Koncept vmestnika ima drugačen pristop, ki naj bi bil lahek za uporabo in bolj splošen. Zaradi nehierarhičnosti so objekti veliko bolj vsestranski kot v jezikih, kot je java.[16] Da bi bil jezik bolj preprost, so nekatere komponente (dedovanje razredov, trditve (assertions), generično programiranje) namenoma izključene.[17]
packagemainimport"fmt"// fib vrne funkcijo, ki vrne Fibonnacijeva številafuncfib()func()int{a,b:=0,1returnfunc()int{a,b=b,a+breturna}}funcmain(){f:=fib()// funkcijski klici se izvršujejo z leve proti desnifmt.Println(f(),f(),f(),f(),f())}
Sklici
↑Codewalk: First-Class Functions in Go (v angleščini), Go podpira prvorazredne funkcije, funkcije višjega reda, uporabniško definirane vrste funkcij, funkcijske literale, zaprtja in večkratne vrnjene vrednosti. Ta bogat nabor funkcij podpira funkcionalni programski slog v strogo tipiziranem jeziku.
↑Is Go an object-oriented language? (v angleščini), pridobljeno 13. aprila 2019, Čeprav ima Go tipe in metode ter omogoča objektno usmerjeni slog programiranja, ni hierarhije tipov.
↑Go: code that grows with grace (v angleščini), pridobljeno 24. junija 2018, Go je objektno usmerjen, vendar ne na običajen način.
↑»Language Design FAQ«, The Go Programming Language (v ameriški angleščini), 16. januar 2010, pridobljeno 27. februarja 2010
↑»Text file LICENSE«, The Go Programming Language (v angleščini), pridobljeno 5. oktobra 2012
Pike, Rob (22. december 2014), Rob Pike on Twitter, arhivirano iz prvotnega spletišča dne 7. aprila 2022, pridobljeno 13. marca 2016, Go has structural typing, not duck typing. Full interface satisfaction is checked and required.