Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
H

history

> 编程语言
Open source

Go: A Documentary | https://golang.design/history

1.1K stars0 likes0 views
WebsiteGitHub

About

Go: A Documentary | https://golang.design/history

Go: A Documentary

_by Changkun Ou _ (and many inputs from contributors)

This document collects many interesting (publicly observable) issues, discussions, proposals, CLs, and talks from the Go development process, which intends to offer a comprehensive reference of the Go history.

Table of Contents

  • Go: A Documentary
    • Disclaimer
    • Sources
    • Origin
    • Committers
      • Core Authors
      • Compiler/Runtime Team
      • Library/Tools/Release/Security/Community
      • Group Interviews
    • Timeline
    • Language Design
      • General
      • Slice (1.2)
      • Package Management (1.4, 1.5, 1.7)
      • Type alias (1.9)
      • Defer (1.14)
      • Error values
      • Channel/Select
      • Generics
      • Iterator
      • Compatibility
    • Compiler Toolchain
      • Office Hours
      • Compiler
      • Linker
      • Debugger
      • Race Detector
      • Tracer
      • Lock Analysis
      • Builder
      • Modules
      • gopls
      • Testing, x/perf
    • Runtime Core
      • Scheduler
      • Execution Stack
      • Memory Management
        • Allocator
        • Collector
      • Statistics
      • Memory model
      • ABI
      • Misc
    • Standard Library
      • syscall
      • os, io, io/fs, embed
      • go/*
      • sync
        • Map
        • Pool
        • Mutex, RWMutex
        • Groups
        • atomic
      • time
      • context
      • encoding
      • image, x/image
      • math
      • Mobile
      • log
      • misc
    • Unclassified But Relevant Links
    • Fun Facts
    • Acknowledgements
    • License

Disclaimer

  • Most of the texts are written as subjective understanding based on public sources
  • Factual and typo errors may occur. Referring to the original link if some text conflicts to your understanding
  • PRs are very welcome for new content submission, bug fixes, and typo fixes
  • Use Issues for discussions

Back To Top

Sources

There are many sources for digging the documents that relate to Go's historical design, and here are some of the official sources:

  • go.dev/blog
  • dev.golang.org
  • build.golang.org
  • farmer.golang.org
  • go.dev/talks
  • go.dev/doc
  • go.dev/pkg
  • github.com/golang/go
  • github.com/golang/proposal
  • github.com/golang/go/wiki
  • go-review.googlesource.com
  • groups.google.com/g/golang-nuts
  • groups.google.com/g/golang-dev
  • groups.google.com/g/golang-tools

Back To Top

Origin

Go is a big project driven by a tiny group of people and the crowd of wisdom from the language user community. Here are some core committers to the project if you are interested in following their excellent work.

Go's origin is attractive without doubts. By listening to the talks held by these people, you could learn more about their oral history and fun stories behind the great work.

For instance, here are some exciting talks regarding the historical feats in Go might be your starting points (as a subjective recommendation): talk/rob2007, talk/rob2009, talk/rob2010b, talk/rob2010d, talk/rob2011a, talk/rob2013a, talk/rob2019, talk/robert2015, talk/russ2014, steve2019b, etc.

Back To Top

Committers

Core Authors

The Go language was created by Rob, Robert, and Ken initially because Rob was bothered by slow C++ compiling times, talked to Robert, and luckily Ken was in the next office. Later, Ian joined the project after showing interest, and wrote the gccgo. Rob and Ken are retired. Robert and Ian currently work on adding generics to Go. Russ is also one of the core authors of the project in the early stage. Back then, he was a newcomer at Google, and Rob invited Russ for joining the Go team since he knew Russ from way back because of the Plan 9 project. Russ worked on the early Go compiler, runtime, as well as the leap of Go 1.5 bootstrap. Now, Russ is the tech leader of the Go team.

  • Rob Pike. (Robert C. Pike, M. Sc.) Website, Blog, GitHub, Twitter, Reddit. (Retired)
    • Alma mater: University of Toronto (BS), California Institute of Technology

    • talk/rob2007 Advanced Topics in Programming Languages: Concurrency/message passing Newsqueak. May 9, 2007

    • talk/rob2009 The Go Programming Language. Nov 27, 2009.

    • talk/rob2010a Go Programming. Google I/O 2010. May 20, 2010

    • talk/rob2010b Origins of Go Concurrency style. Emerging Languages Camp 2010. July 21, 2010.

    • talk/rob2010c Public Static Void. OSCON 2010. Jul 22, 2010.

    • talk/rob2010d Another Go at Language Design. Aug 27, 2010.

    • talk/rob2011a Parallelism and Concurrency in Programming Languages. Feb 17, 2011.

    • talk/rob2011b Google Go: Concurrency, Type System, Memory Management and GC. Feb 25, 2011.

    • talk/rob2011c Lexical Scanning in Go. Aug 30, 2011.

    • talk/rob2012a Go Concurrency Patterns. Google I/O 2012. Jul 2, 2012.

    • talk/rob2012b Why Learn Go?. Sep 12, 2012.

    • talk/rob2013a The path to Go 1. Mar 14, 2013.

    • talk/rob2013b Go at Google. Apr 13, 2013.

    • talk/rob2013c Go Programming with Rob Pike and Andrew Gerrand. Aug 14, 2013.

    • talk/rob2013d Concurrency Is Not Parallelism. Oct 20, 2013.

    • talk/rob2014a Hello Gophers! Gophercon Opening Keynote. GopherCon 2014. Apr 24, 2014.

    • talk/rob2014b Implementing a bignum calculator. Sydney Go meeup. Nov, 19 2014.

    • talk/rob2015a The move from C to Go in the toolchain. GopherFest 2015. Jun 10, 2015.

    • talk/rob2015b Go Proverbs. Gopherfest. Nov 18, 2015.

    • talk/rob2015c Simplicity is Complicated. dotGo 2015. Dec 2, 2015.

    • talk/rob2016a The Design of the Go Assembler. GopherCon 2016. Aug 18, 2016.

    • talk/rob2016b Stacks of Tokens: A study in interfaces. Sydney Go Meetup. September 19, 2016.

    • talk/rob2017 Upspin. Gopherfest 2017. Jun 22, 2017.

    • talk/rob2018a The History of Unix. Nov 7, 2018.

    • talk/rob2018b Go 2 Draft Specifications. Sydney Golang Meetup. Nov 13, 2018.

    • talk/rob2019a Creating the Go programming language with Rob Pike & Robert Griesemer. Sep 10, 2019.

    • talk/rob2019b Rob Pike. A Brief History of Go. Dec 12, 2019.

    • talk/rob2020 A Rob Pike Interview. (Date Unclear) Apr 30, 2020.

    • talk/rob2021 The Go Programming Language and Environment. John Lions Distinguished Lecture, UNSW, May 27, 2021.

    • [talk/rob2023] What We Got Right, What We Got Wrong. GopherCon Australia 2023. Nov 10, 2023.

  • Robert Griesemer. (Dr. Robert Griesemer) GitHub, Twitter
    • Alma mater: ETH Zürich
    • paper/robert1993 A Programming Language for Vector Computers. Doctor Dissertation. 1993.
    • talk/robert2012a E2E: Erik Meijer and Robert Griesemer. Going Go. Lang.NEXT. Mar 16, 2012.
    • talk/robert2012b Go In Three Easy Pieces. Mar 19, 2012.
    • talk/robert2012c Lang.NEXT 2012 Expert Panel: Native Languages. Apr 11, 2012.
    • talk/robert2015 The Evolution of Go. GopherCon 2015. Jul 28, 2015.
    • talk/robert2016a Lightning Talk: Alias Declarations for Gom: A proposal. GopherCon 2016. Oct 9, 2016.
    • talk/robert2016b Prototype your design!. dotGo 2016. Nov 29, 2016.
    • talk/robert2017 Opening Keynote: Exporting Go. GopherCon SG 2017. May 29, 2017.
    • talk/robert2017 A brief overview of Go. Aug 28. 2017.
    • talk/robert2019 Go is 10! Now What?. Gopherpalooza 2019. Dec 2, 2019.
    • talk/robert2020a The latest on Generics with Robert Griesemer and Ian Lance Taylor. Jul 21, 2020.
    • talk/robert2020b Typing [Generic] Go. Nov 11, 2020.
    • talk/robert2021 Generics! Dec 17, 2021.
  • Ken Thompson. (Kenneth Lane Thompson, M. Sc.) (Retired)
    • Alma mater: UC Berkeley
    • talk/ken1982a The UNIX System: Making Computers More Productive. 1982.
    • talk/ken1982b UNIX: Making Computers Easier To Use.
    • talk/ken1982c Ken Thompson and Dennis Ritchie Explain UNIX (Bell Labs).
    • talk/ken1998 Ken Thompson and Dennis Ritchie. National Medal of Technology Awards. 1998.
    • talk/ken2013 Systems Architecture, Design, Engineering, and Verification. Jan 17, 2013.
    • talk/ken2019a The Thompson

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Gogogolanghistory

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言