2007年、Google 社内で3人が始めた言語。
きっかけは、Google の巨大な C++ コードベースへの不満。ビルドが遅い、言語が複雑、多数のエンジニアが同じコードを触ると読みにくい。そこに、マルチコア CPU とネットワーク越しのサーバーが当たり前になった時代の変化が重なる。「C のように速く、Python のように手軽に書けて、並行処理が得意な言語」を目指して設計された。
| 年 | できごと |
|---|---|
| 2007 | Google 社内で設計開始 |
| 2009 | オープンソースとして公開 |
| 2012 | Go 1.0。「Go 1 の範囲で書いたコードは将来も動く」という互換性の約束 |
| 2015 | Go 1.5。コンパイラとランタイムが C から Go 自身で書き直される(セルフホスト) |
| 2018 | Go 1.11。依存管理の Go Modules が登場(1.16 から既定) |
| 2022 | Go 1.18。ジェネリクス(型パラメータ)が入る |
| 2024 | Go 1.22。for ループの変数が1周ごとに別物になる(長年の落とし穴の解消)。1.23 で range over func(イテレーター) |
リリースは年2回(2月と8月)。2026年10月時点の手元は Go 1.26.2。マスコットは Renée French がデザインしたホリネズミ(Gopher)。
implements を書かない)error を返し、呼んだ側が if err != nil で受けるgo f() だけで軽量スレッドが立つ。goroutine 同士は channel で値を受け渡す(CSP という並行処理の理論が下敷き)gofmt(書式を1つに統一)・go test・go vet・go mod・race detector・pprofgh)、Hugo(notes.imutaro.com のビルドに使っている静的サイトジェネレーター)net/http だけで本番の HTTP サーバーが書けるGOOS=linux GOARCH=amd64 go build だけで Mac から Linux 用のバイナリが作れるgofmt で書式も統一される。チームで読みやすいこのサイトのノートから、知りたいことが書いてあるページを探して案内するよ。
AI の案内はまちがうことがあるよ。中身はリンク先のノートで確かめてね。