Lo sviluppo di Go inizia nel 2007 nei laboratori di Google, grazie al lavoro di Robert Griesemer, Rob Pike e Ken Thompson. Si tratta di un linguaggio di programmazione open source pensato per realizzare applicativi e software multipiattaforma, velocizzandone e semplificandone la scrittura e rendendoli altamente scalabili.
La sua nascita si deve principalmente ad esigenze interne, così come raccontato da Rob Pike nel 2012 durante la conferenza SPLASH 2012 (in Tucson, Arizona:
“Go è un linguaggio progettato da Google per cercare di risolvere i problemi di Google, e Google ha bisogno di risolvere grossi problemi. Ci sono milioni e milioni di righe di codice, scritte da migliaia e migliaia di ingegneri, che producono software che viene eseguito su un numero enorme di macchine divise in cluster. In breve: lo sviluppo software in Google è davvero imponente, può essere lento e a volte goffo, ma sicuramente è efficace. Lo scopo principale per cui è stato creato Go è di ridurre la lentezza dello sviluppo software in Google e di riflesso rendere i processi più produttivi e scalabili. Il linguaggio è stato progettato per gestire, sviluppare, debuggare e mantenere sistemi software di grandi dimensioni.”
La prima release ufficiale viene rilasciata nel 2009, e progressivamente vengono introdotte nuove funzionalità che lo hanno reso sempre più flessibile e dinamico grazie al lavoro congiunto di Google, che segue la sua costante evoluzione, che dalla partecipazione instancabile della community di Gophers, che segnala problematiche e condivide possibili soluzioni, in base alla propria esperienza, attraverso gli experience reports.