Introduction
Go was created at Google starting in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson, three engineers with deep experience in systems programming and language design. They were frustrated with the slow build times, complexity, and tooling issues found in the large C++ codebases used at Google, and wanted a language that combined fast compilation, simplicity, and good support for concurrent, networked software. Go was publicly announced as an open-source project in November 2009.
Cricket analogy: Go being created by three engineers frustrated with slow, complex tooling is like three senior selectors overhauling a sluggish domestic system, wanting faster turnarounds and simpler rules to develop players more efficiently.
Syntax
package main
import (
"fmt"
"runtime"
)
func main() {
fmt.Println("Go version:", runtime.Version())
}Explanation
The runtime package exposes information about the Go runtime itself, including the current Go version via runtime.Version(). This example demonstrates how the language has matured into a well-documented standard library where version and environment introspection are built in, a reflection of the disciplined engineering approach taken since Go 1.0 was released in March 2012 with a strong promise of backward compatibility.
Cricket analogy: runtime.Version() reporting the Go version is like a scoreboard displaying which edition of the playing regulations is in force for the match, letting players and umpires confirm the rules before play begins.
Example
package main
import "fmt"
func main() {
milestones := map[string]string{
"2007": "Design began at Google",
"2009": "Publicly announced as open source",
"2012": "Go 1.0 released",
}
for year, event := range milestones {
fmt.Printf("%s: %s\n", year, event)
}
}Output
The program prints each year and its associated milestone, such as '2012: Go 1.0 released'. Because map iteration order in Go is not guaranteed, the lines may appear in a different order each time the program runs.
Cricket analogy: Printing years and milestones in unpredictable map order is like a highlights reel showing career milestones for different players in whatever order the editor pulls the footage, not strictly by year.
Key Takeaways
- Go was designed at Google starting in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson.
- Go was announced publicly as open source in November 2009.
- Go 1.0 was officially released in March 2012 with a compatibility promise.
- Go was created to solve real problems with build speed and complexity in large C++ codebases.
- Since 1.0, Go has steadily added features like modules and generics while preserving simplicity.
Practice what you learned
1. In what year did Go design work begin at Google?
2. Which of the following is one of Go's original creators?
3. When was Go publicly announced as an open-source project?
4. When was Go 1.0 officially released?
5. What primary problem was Go designed to solve at Google?
Was this page helpful?
You May Also Like
Introduction to Go Programming
A first look at Go, a statically typed, compiled language built for simplicity, speed, and concurrency.
Features of Go
An overview of Go's core language features, including concurrency, garbage collection, and simple syntax.
Setting Up a Go Environment
Step-by-step guide to installing Go, understanding modules, and running your first program.
Go vs Other Languages Interview Questions
How to compare Go to Java, Python, C, Rust, and Node.js in interviews, and why cloud infra like Docker and Kubernetes chose Go.
Related Reading
Related Study Notes in Programming
Browse all study notesApache Spark Study Notes
Programming · 30 topics
ProgrammingApache Flink Study Notes
Programming · 30 topics
ProgrammingHadoop Study Notes
Programming · 30 topics
ProgrammingSnowflake Study Notes
Programming · 30 topics
ProgrammingApache Airflow Study Notes
Programming · 30 topics
Programmingdbt (Data Build Tool) Study Notes
Programming · 30 topics