The Go Blog

Blog Index

Go Turns 15, 11 November 2024
Austin Clements, for the Go team

Happy 15th birthday, Go!

What's in an (Alias) Name?, 17 September 2024
Robert Griesemer

A description of generic alias types, a planned feature for Go 1.24

Building LLM-powered applications in Go, 12 September 2024
Eli Bendersky

LLM-powered applications in Go using Gemini, langchaingo and Genkit

Share your feedback about developing with Go, 9 September 2024
Alice Merrick, for the Go team

Help shape the future of Go by sharing your thoughts via the Go Developer Survey

Telemetry in Go 1.23 and beyond, 3 September 2024
Robert Findley

Go 1.23 includes opt-in telemetry for the Go toolchain.

New unique package, 27 August 2024
Michael Knyszek

New package for interning in Go 1.23.

Range Over Function Types, 20 August 2024
Ian Lance Taylor

A description of range over function types, a new feature in Go 1.23.

Go 1.23 is released, 13 August 2024
Dmitri Shuralyov, on behalf of the Go team

Go 1.23 adds iterators, continues loop enhancements, improves compatibility, and more.

Secure Randomness in Go 1.22, 2 May 2024
Russ Cox and Filippo Valsorda

ChaCha8Rand is a new cryptographically secure pseudorandom number generator used in Go 1.22.

Evolving the Go Standard Library with math/rand/v2, 1 May 2024
Russ Cox

Go 1.22 adds math/rand/v2 and charts a course for the evolution of the Go standard library.

Go Developer Survey 2024 H1 Results, 9 April 2024
Alice Merrick and Todd Kulesza

What we learned from our 2024 H1 developer survey

More powerful Go execution traces, 14 March 2024
Michael Knyszek

New features and improvements to execution traces from the last year.

Robust generic functions on slices, 22 February 2024
Valentin Deleplace

Avoiding memory leaks in the slices package.

Routing Enhancements for Go 1.22, 13 February 2024
Jonathan Amsterdam, on behalf of the Go team

Go 1.22's additions to patterns for HTTP routes.

Go 1.22 is released!, 6 February 2024
Eli Bendersky, on behalf of the Go team

Go 1.22 enhances for loops, brings new standard library functionality and improves performance.

Share your feedback about developing with Go, 23 January 2024
Alice Merrick, for the Go team

Help shape the future of Go by sharing your thoughts via the Go Developer Survey

Finding unreachable functions with deadcode, 12 December 2023
Alan Donovan

deadcode is a new command to help identify functions that cannot be called.

Go Developer Survey 2023 H2 Results, 5 December 2023
Todd Kulesza

What we learned from our 2023 H2 developer survey

Fourteen Years of Go, 10 November 2023
Russ Cox, for the Go team

Happy Birthday, Go!

Everything You Always Wanted to Know About Type Inference - And a Little Bit More, 9 October 2023
Robert Griesemer

A description of how type inference for Go works. Based on the GopherCon 2023 talk with the same title.

Deconstructing Type Parameters, 26 September 2023
Ian Lance Taylor

Why the function signatures in the slices packages are so complicated.

Fixing For Loops in Go 1.22, 19 September 2023
David Chase and Russ Cox

Go 1.21 shipped a preview of a change in Go 1.22 to make for loops less error-prone.

WASI support in Go, 13 September 2023
Johan Brandhorst-Satzkorn, Julien Fabre, Damian Gryski, Evan Phoenix, and Achille Roussel

Go 1.21 adds a new port targeting the WASI preview 1 syscall API

Scaling gopls for the growing Go ecosystem, 8 September 2023
Robert Findley and Alan Donovan

As the Go ecosystem gets bigger, gopls must get smaller

Profile-guided optimization in Go 1.21, 5 September 2023
Michael Pratt

Introduction to profile-guided optimization, generally available in Go 1.21.

Perfectly Reproducible, Verified Go Toolchains, 28 August 2023
Russ Cox

Go 1.21 is the first perfectly reproducible Go toolchain.

Structured Logging with slog, 22 August 2023
Jonathan Amsterdam

The Go 1.21 standard library includes a new structured logging package, log/slog.

Forward Compatibility and Toolchain Management in Go 1.21, 14 August 2023
Russ Cox

Go 1.21 manages Go toolchains like any other dependency; you will never need to manually download and install a Go toolchain again.

Backward Compatibility, Go 1.21, and Go 2, 14 August 2023
Russ Cox

Go 1.21 expands Go's commitment to backward compatibility, so that every new Go toolchain is the best possible implementation of older toolchain semantics as well.

Go 1.21 is released!, 8 August 2023
Eli Bendersky, on behalf of the Go team

Go 1.21 brings language improvements, new standard library packages, PGO GA, backward and forward compatibility in the toolchain and faster builds.

Experimenting with project templates, 31 July 2023
Cameron Balahan

Announcing golang.org/x/tools/cmd/gonew, an experimental tool for starting new Go projects from predefined templates

Share your feedback about developing with Go, 25 July 2023
Todd Kulesza, for the Go team

Help shape the future of Go by sharing your thoughts via the Go Developer Survey

Govulncheck v1.0.0 is released!, 13 July 2023
Julie Qiu, for the Go security team

Version v1.0.0 of golang.org/x/vuln has been released, introducing a new API and other improvements.

Go 1.21 Release Candidate, 21 June 2023
Eli Bendersky, on behalf of the Go team

Go 1.21 RC brings language improvements, new standard library packages, PGO GA, backward and forward compatibility in the toolchain and faster builds.

Go Developer Survey 2023 Q1 Results, 11 May 2023
Alice Merrick

An analysis of the results from the 2023 Q1 Go Developer Survey.

Code coverage for Go integration tests, 8 March 2023
Than McIntosh

Code coverage for integration tests, available in Go 1.20.

All your comparable types, 17 February 2023
Robert Griesemer

type parameters, type sets, comparable types, constraint satisfaction

Profile-guided optimization preview, 8 February 2023
Michael Pratt

Introduction to profile-guided optimization, available as a preview in Go 1.20.

Go 1.20 is released!, 1 February 2023
Robert Griesemer, on behalf of the Go team

Go 1.20 brings PGO, faster builds, and various tool, language, and library improvements.

Share your feedback about developing with Go, 18 January 2023
Alice Merrick, for the Go team

Help shape the future of Go by sharing your thoughts via the Go Developer Survey

Thirteen Years of Go, 10 November 2022
Russ Cox, for the Go team

Happy Birthday, Go!

Go runtime: 4 years later, 26 September 2022
Michael Knyszek

A check-in on the status of Go runtime development

Go Developer Survey 2022 Q2 Results, 8 September 2022
Todd Kulesza

An analysis of the results from the 2022 Q2 Go Developer Survey.

Vulnerability Management for Go, 6 September 2022
Julie Qiu, for the Go security team

Announcing vulnerability management for Go, to help developers learn about known vulnerabilities in their dependencies.

Go 1.19 is released!, 2 August 2022
The Go Team

Go 1.19 adds richer doc comments, performance improvements, and more.

Share your feedback about developing with Go, 1 June 2022
Todd Kulesza, for the Go team

Help shape the future of Go by sharing your thoughts via the Go Developer Survey

Go Developer Survey 2021 Results, 19 April 2022
Alice Merrick

An analysis of the results from the 2021 Go Developer Survey.

When To Use Generics, 12 April 2022
Ian Lance Taylor

When to use generics when writing Go code, and when not to use them.

Get familiar with workspaces, 5 April 2022
Beth Brown, for the Go team

Learn about Go workspaces and some of the workflows they enable.

How Go Mitigates Supply Chain Attacks, 31 March 2022
Filippo Valsorda

Go tooling and design help mitigate supply chain attacks at various stages.

An Introduction To Generics, 22 March 2022
Robert Griesemer and Ian Lance Taylor

An introduction to generics in Go.

Go 1.18 is released!, 15 March 2022
The Go Team

Go 1.18 adds generics, native fuzzing, workspace mode, performance improvements, and more.

Announcing Go 1.18 Beta 2, 31 January 2022
Jeremy Faller and Steve Francia, for the Go team

Go 1.18 Beta 2 is our second preview of Go 1.18. Please try it and let us know if you find problems.

Two New Tutorials for 1.18, 14 January 2022
Katie Hockman, for the Go team

Two new tutorials have been published in preparation for the release of Go 1.18.

Go 1.18 Beta 1 is available, with generics, 14 December 2021
Russ Cox, for the Go team

Go 1.18 Beta 1 is our first preview of Go 1.18. Please try it and let us know if you find problems.

Twelve Years of Go, 10 November 2021
Russ Cox, for the Go team

Happy Birthday, Go!

A new search experience on pkg.go.dev, 9 November 2021
Julie Qiu

Package search on pkg.go.dev has been updated, and you can now search for symbols!

Announcing the 2021 Go Developer Survey, 26 October 2021
Alice Merrick

Please take the 2021 Go Developer Survey. We want to hear from you!

Code of Conduct Updates, 16 September 2021
Carmen Andoh, Russ Cox, and Steve Francia

A small update to, and an update on enforcement of, the Go Code of Conduct

Automatic cipher suite ordering in crypto/tls, 15 September 2021
Filippo Valsorda

Go 1.17 is making TLS configuration easier and safer by automating TLS cipher suite preference ordering.

Tidying up the Go web experience, 18 August 2021
Russ Cox

Consolidating our web sites onto go.dev.

Go 1.17 is released, 16 August 2021
Matt Pearring and Alex Rakoczy

Go 1.17 adds performance improvements, module optimizations, arm64 on Windows, and more.

The Go Collective on Stack Overflow, 23 June 2021
Steve Francia

Announcing the Go Collective, a new experience for Go on Stack Overflow.

Fuzzing is Beta Ready, 3 June 2021
Katie Hockman and Jay Conrod

Native Go fuzzing is now ready for beta testing on tip.

Go Developer Survey 2020 Results, 9 March 2021
Alice Merrick

An analysis of the results from the 2020 Go Developer Survey.

Contexts and structs, 24 February 2021
Jean de Klerk, Matt T. Proud

New module changes in Go 1.16, 18 February 2021
Jay Conrod

Go 1.16 enables modules by default, provides a new way to install executables, and lets module authors retract published versions.

Go 1.16 is released, 16 February 2021
Matt Pearring and Dmitri Shuralyov

Go 1.16 adds embedded files, Apple Silicon support, and more.

Gopls on by default in the VS Code Go extension, 1 February 2021
Go tools team

Gopls, which provides IDE features for Go to many editors, is now used by default in VS Code Go.

Command PATH security in Go, 19 January 2021
Russ Cox

How to decide if your programs are vulnerable to PATH problems, and what to do about it.

A Proposal for Adding Generics to Go, 12 January 2021
Ian Lance Taylor

Generics is entering the language change proposal process

Go on ARM and Beyond, 17 December 2020
Russ Cox

Go's support for ARM64 and other architectures

Redirecting godoc.org requests to pkg.go.dev, 15 December 2020
Julie Qiu

The plan for moving from godoc.org to pkg.go.dev.

Eleven Years of Go, 10 November 2020
Russ Cox, for the Go team

Happy Birthday, Go!

Pkg.go.dev has a new look!, 10 November 2020
Julie Qiu

Announcing a new user experience on pkg.go.dev.

Announcing the 2020 Go Developer Survey, 20 October 2020
Alice Merrick

Please take the 2020 Go Developer Survey. We want to hear from you!

Go 1.15 is released, 11 August 2020
Alex Rakoczy

Go 1.15 adds a new linker, X.509 changes, runtime improvements, compiler improvements, GOPROXY improvements, and more.

Keeping Your Modules Compatible, 7 July 2020
Jean de Klerk and Jonathan Amsterdam

How to keep your modules compatible with prior minor/patch versions.

The Next Step for Generics, 16 June 2020
Ian Lance Taylor and Robert Griesemer

An updated generics design draft, and a translation tool for experimentation

Pkg.go.dev is open source!, 15 June 2020
Julie Qiu

The VS Code Go extension joins the Go project, 9 June 2020
The Go team

Announcement of VS Code Go’s move to the Go project.

Go Developer Survey 2019 Results, 20 April 2020
Todd Kulesza

An analysis of the results from the 2019 Go Developer Survey.

Go, the Go Community, and the Pandemic, 25 March 2020
Carmen Andoh, Russ Cox, and Steve Francia

How the Go team is approaching the pandemic, what you can expect from us, and what you can do.

A new Go API for Protocol Buffers, 2 March 2020
Joe Tsai, Damien Neil, and Herbie Ong

Announcing a major revision of the Go API for protocol buffers.

Go 1.14 is released, 25 February 2020
Alex Rakoczy

Go 1.14 adds production-ready module support, faster defers, better goroutine preemption, and more.

Next steps for pkg.go.dev, 31 January 2020
Julie Qiu

What the Go team is planning for pkg.go.dev in 2020.

Proposals for Go 1.15, 28 January 2020
Robert Griesemer, for the Go team

For Go 1.15, we propose three minor language cleanup changes.

Announcing the 2019 Go Developer Survey, 20 November 2019
Todd Kulesza

Please take the 2019 Go Developer Survey. We want to hear from you!

Go.dev: a new hub for Go developers, 13 November 2019
Steve Francia and Julie Qiu

Announcing go.dev, which answers: who else is using Go, what do they use it for, and how can I find useful Go packages?

Go Turns 10, 8 November 2019
Russ Cox, for the Go team

Happy 10th birthday, Go!

Go Modules: v2 and Beyond, 7 November 2019
Jean de Klerk and Tyler Bui-Palsulich

How to release major version 2 of your module.

Working with Errors in Go 1.13, 17 October 2019
Damien Neil and Jonathan Amsterdam

How to use the new Go 1.13 error interfaces and functions.

Publishing Go Modules, 26 September 2019
Tyler Bui-Palsulich

How to write and publish modules for use as dependencies.

Go 1.13 is released, 3 September 2019
Andrew Bonventre

Go 1.13 adds module authentication, new number literals, error wrapping, TLS 1.3 on by default, and more.

Module Mirror and Checksum Database Launched, 29 August 2019
Katie Hockman

The Go module mirror and checksum database provide faster, verified downloads of your Go dependencies.

Migrating to Go Modules, 21 August 2019
Jean de Klerk

How to use Go modules to manage your program's dependencies.

Contributors Summit 2019, 15 August 2019
Carmen Andoh and contributors

Reporting from the Go Contributor Summit at GopherCon 2019.

Experiment, Simplify, Ship, 1 August 2019
Russ Cox

How we develop Go, a talk from GopherCon 2019.

Why Generics?, 31 July 2019
Ian Lance Taylor

Why should we add generics to Go, and what might they look like?

Announcing The New Go Store, 18 July 2019
Cassandra Salisbury

Unfortunately, the Go store is offline.

Next steps toward Go 2, 26 June 2019
Robert Griesemer, for the Go team

What Go 2 language changes should we include in Go 1.14?

Go 2018 Survey Results, 28 March 2019
Todd Kulesza, Steve Francia

What we learned from the December 2018 Go User Survey.

Debugging what you deploy in Go 1.12, 21 March 2019
David Chase

Go 1.12 improves support for debugging optimized binaries.

Using Go Modules, 19 March 2019
Tyler Bui-Palsulich and Eno Compton

An introduction to the basic operations needed to get started with Go modules.

The New Go Developer Network, 14 March 2019
GoBridge Leadership Team

Announcing the Go Developer Network, a collection of Go user groups sharing best practices.

What's new in the Go Cloud Development Kit, 4 March 2019
The Go Cloud Development Kit team at Google

Recent changes to the Go Cloud Development Kit (Go CDK).

Go 1.12 is released, 25 February 2019
Andrew Bonventre

Go 1.12 adds opt-in TLS 1.3, improved modules, and more.

Go Modules in 2019, 19 December 2018
Russ Cox

What the Go team is planning for Go modules in 2019.

Go 2, here we come!, 29 November 2018
Robert Griesemer

How Go 2 proposals will be evaluated, selected, and shipped.

Nine years of Go, 10 November 2018
Steve Francia

Happy 9th birthday, Go!

Participate in the 2018 Go User Survey, 8 November 2018
Ran Tao, Steve Francia

Please take the 2018 Go User Survey. We want to hear from you!

Announcing App Engine’s New Go 1.11 Runtime, 16 October 2018
Eno Compton and Tyler Bui-Palsulich

Google Cloud is announcing a new Go 1.11 runtime for App Engine, with fewer limits on app structure.

Compile-time Dependency Injection With Go Cloud's Wire, 9 October 2018
Robert van Gent

How to use Wire, a dependency injection tool for Go.

Participate in the 2018 Go Company Questionnaire, 4 October 2018
Ran Tao, Steve Francia

Please take the 2018 Go Company Questionnaire.

Go 2 Draft Designs, 28 August 2018

Announcing the draft designs for the major Go 2 changes.

Go 1.11 is released, 24 August 2018
Andrew Bonventre

Go 1.11 adds preliminary support for Go modules, WebAssembly, and more.

Portable Cloud Programming with Go Cloud, 24 July 2018
Eno Compton and Cassandra Salisbury

Announcing Go Cloud, for portable cloud programming with Go.

Getting to Go: The Journey of Go's Garbage Collector, 12 July 2018
Rick Hudson

A technical talk about the structure and details of the new, low-latency Go garbage collector.

Updating the Go Code of Conduct, 23 May 2018
Steve Francia

Revising the Go Code of Conduct.

Go's New Brand, 26 April 2018
Steve Francia

Go’s new look and logo (don't worry, the mascot isn’t changing!).

A Proposal for Package Versioning in Go, 26 March 2018
Russ Cox

Proposing official support for package versioning in Go, using Go modules.

Go 2017 Survey Results, 26 February 2018
Steve Francia

What we learned from the December 2017 Go User Survey.

Go 1.10 is released, 16 February 2018
Brad Fitzpatrick

Go 1.10 adds automatic caching of build & test results, and more.

Hello, 中国!, 22 January 2018
Andrew Bonventre

The Go home page and binary downloads is now available in China, at https://golang.google.cn.

Participate in the 2017 Go User Survey, 16 November 2017
Steve Francia

Please take the 2017 Go User Survey. We want to hear from you!

Eight years of Go, 10 November 2017
Steve Francia

Happy 8th birthday, Go!

Community Outreach Working Group, 5 September 2017
Steve Francia & Cassandra Salisbury

Announcing the Go Community Outreach Working Group (CWG).

Go 1.9 is released, 24 August 2017
Francesc Campoy

Go 1.9 adds type aliases, bit intrinsics, optimizations, and more.

Contribution Workshop, 9 August 2017
Steve Francia, Cassandra Salisbury, Matt Broberg, and Dmitri Shuralyov

The Go contributor workshop trained new contributors at GopherCon.

Contributors Summit, 3 August 2017
Sam Whited

Reporting from the Go Contributor Summit at GopherCon 2017.

Toward Go 2, 13 July 2017
Russ Cox

How we will all work together toward Go 2.

Introducing the Developer Experience Working Group, 10 April 2017
The Developer Experience Working Group

Announcing the Developer eXperience Working Group (DXWG).

HTTP/2 Server Push, 24 March 2017
Jaana Burcu Dogan and Tom Bergan

How to use HTTP/2 server push to reduce page load times.

Go 2016 Survey Results, 6 March 2017
Steve Francia, for the Go team

What we learned from the December 2017 Go User Survey.

Go 1.8 is released, 16 February 2017
Chris Broadfoot

Go 1.8 adds faster non-x86 compiled code, sub-millisecond garbage collection pauses, HTTP/2 push, and more.

Participate in the 2016 Go User Survey and Company Questionnaire, 13 December 2016
Steve Francia

Please take the 2016 Go User Survey and Company Questionnaire. We want to hear from you!

Go fonts, 16 November 2016
Nigel Tao, Chuck Bigelow, and Rob Pike

Announcing the Go font family, by Bigelow & Holmes.

Seven years of Go, 10 November 2016
The Go Team

Happy 7th birthday, Go!

Introducing HTTP Tracing, 4 October 2016
Jaana Burcu Dogan

How to use Go 1.7's HTTP tracing to understand your client requests.

Using Subtests and Sub-benchmarks, 3 October 2016
Marcel van Lohuizen

How to use Go 1.7's new subtests and sub-benchmarks.

Smaller Go 1.7 binaries, 18 August 2016
David Crawshaw

Go 1.7 includes some binary size reductions important for small devices.

Go 1.7 is released, 15 August 2016
Chris Broadfoot

Go 1.7 adds faster x86 compiled code, context in the standard library, and more.

Go 1.6 is released, 17 February 2016
Andrew Gerrand

Go 1.6 adds HTTP/2, template blocks, and more.

Language and Locale Matching in Go, 9 February 2016
Marcel van Lohuizen

How to internationalize your web site with Go's language and locale matching.

Six years of Go, 10 November 2015
Andrew Gerrand

Happy 6th birthday, Go!

Golang UK 2015, 9 October 2015
Francesc Campoy

Reporting from GolangUK 2015, the first London Go conference.

Go GC: Prioritizing low latency and simplicity, 31 August 2015
Richard Hudson

Go 1.5 is the first step toward a new low-latency future for the Go garbage collector.

Go 1.5 is released, 19 August 2015
Andrew Gerrand

Go 1.5 adds a new, much faster garbage collector, more parallelism by default, go tool trace, and more.

GopherCon 2015 Roundup, 28 July 2015
Andrew Gerrand

Reporting from GopherCon 2015.

Go, Open Source, Community, 8 July 2015
Russ Cox

Why is Go open source, and how can we strengthen our open-source community?

Qihoo 360 and Go, 6 July 2015
Yang Zhou

How Qihoo 360 uses Go.

GopherChina Trip Report, 1 July 2015
Robert Griesemer

Reporting from GopherChina 2015, the first Go conference in China.

Testable Examples in Go, 7 May 2015
Andrew Gerrand

How to add examples, which double as tests, to your packages.

Package names, 4 February 2015
Sameer Ajmani

How to name your packages.

Errors are values, 12 January 2015
Rob Pike

Idioms and patterns for handling errors in Go.

GothamGo: gophers in the big apple, 9 January 2015
Francesc Campoy

Reporting from GothamGo 2015, the first full-day Go conference in New York City.

The Gopher Gala is the first worldwide Go hackathon, 7 January 2015
Francesc Campoy

The Gopher Gala, the first global Go hackathon, will take place January 23-25, 2015.

Generating code, 22 December 2014
Rob Pike

How to use go generate.

Go 1.4 is released, 10 December 2014
Andrew Gerrand

Go 1.4 adds support for Android, go generate, optimizations, and more.

Half a decade with Go, 10 November 2014
Andrew Gerrand

Happy 5th birthday, Go!

Go at Google I/O and Gopher SummerFest, 6 October 2014
Francesc Campoy

Reporting from Google I/O 2014 and the GoSF Go SummerFest.

Deploying Go servers with Docker, 26 September 2014
Andrew Gerrand

How to use Docker's new official base images for Go.

Constants, 25 August 2014
Rob Pike

An introduction to constants in Go.

Go at OSCON, 20 August 2014
Francesc Campoy

Reporting from OSCON 2014.

Go Concurrency Patterns: Context, 29 July 2014
Sameer Ajmani

An introduction to the Go context package.

Go will be at OSCON 2014, 15 July 2014
Francesc Campoy

If you will be at OSCON 2014, July 20-29 in Portland, Oregon, be sure to check out these Go talks.

Go 1.3 is released, 18 June 2014
Andrew Gerrand

Go 1.3 adds better performance, static analysis in godoc, and more.

GopherCon 2014 Wrap Up, 28 May 2014
Andrew Gerrand

Reporting from GopherCon 2014.

The Go Gopher, 24 March 2014
Rob Pike and Andrew Gerrand

The backstory of the Go gopher.

Go Concurrency Patterns: Pipelines and cancellation, 13 March 2014
Sameer Ajmani

How to use Go's concurrency to build data-processing pipelines.

Go talks at FOSDEM 2014, 24 February 2014
Andrew Gerrand

Reporting from the Go Devroom at FOSDEM 2014.

Go on App Engine: tools, tests, and concurrency, 13 December 2013
Andrew Gerrand and Johan Euphrosine

Announcing improvements to Go on App Engine.

Inside the Go Playground, 12 December 2013
Andrew Gerrand

How the Go playground works.

The cover story, 2 December 2013
Rob Pike

Introducing Go 1.12's code coverage tool.

Go 1.2 is released, 1 December 2013
Andrew Gerrand

Go 1.2 adds test coverage results, goroutine preemption, and more.

Text normalization in Go, 26 November 2013
Marcel van Lohuizen

How and why to normalize UTF-8 text in Go.

Four years of Go, 10 November 2013
Andrew Gerrand

Happy 4th birthday, Go!

Strings, bytes, runes and characters in Go, 23 October 2013
Rob Pike

How strings work in Go, and how to use them.

Arrays, slices (and strings): The mechanics of 'append', 26 September 2013
Rob Pike

How Go arrays and slices work, and how to use copy and append.

The first Go program, 18 July 2013
Andrew Gerrand

Rob Pike dug up the first Go program ever written.

Introducing the Go Race Detector, 26 June 2013
Dmitry Vyukov and Andrew Gerrand

How and why to use the Go race detector to improve your programs.

Go and the Google Cloud Platform, 12 June 2013
Andrew Gerrand

Two talks about using Go with the Google Cloud Platform, from Google I/O 2013.

A conversation with the Go team, 6 June 2013

At Google I/O 2013, several members of the Go team hosted a "Fireside chat."

Advanced Go Concurrency Patterns, 23 May 2013
Andrew Gerrand

Watch Sameer Ajmani's talk, “Advanced Go Concurrency Patterns,” from Google I/O 2013.

Go 1.1 is released, 13 May 2013
Andrew Gerrand

Go 1.1 is faster, less picky about return statements, and adds method expressions.

The path to Go 1, 14 March 2013
Andrew Gerrand

Watch Rob Pike and Andrew Gerrand's talk, The Path to Go 1.

Two recent Go articles, 6 March 2013
Andrew Gerrand

Two Go articles: “Go at Google: Language Design in the Service of Software Engineering” and “Getting Started with Go, App Engine and Google+ API”

Get thee to a Go meetup, 27 February 2013
Andrew Gerrand

How to find or start a local group of gophers.

Go maps in action, 6 February 2013
Andrew Gerrand

How and when to use Go maps.

go fmt your code, 23 January 2013
Andrew Gerrand

How and why to format your Go code using gofmt.

Concurrency is not parallelism, 16 January 2013
Andrew Gerrand

Watch Rob Pike's talk, _Concurrency is not parallelism._

The App Engine SDK and workspaces (GOPATH), 9 January 2013
Andrew Gerrand

App Engine SDK 1.7.4 adds support for GOPATH-style workspaces.

Two recent Go talks, 2 January 2013
Andrew Gerrand

Two Go talks: “Go: A Simple Programming Environment” and “Go: Code That Grows With Grace”.

Go turns three, 10 November 2012
Russ Cox

Happy 3rd birthday, Go!

Go updates in App Engine 1.7.1, 22 August 2012
Andrew Gerrand

App Engine SDK 1.7.1 adds memcache and other functionality for Go.

Organizing Go code, 16 August 2012
Andrew Gerrand

How to name and package the parts of your Go program to best serve your users.

Gccgo in GCC 4.7.1, 11 July 2012
Ian Lance Taylor

GCC 4.7.1 adds support for Go 1.

Go videos from Google I/O 2012, 2 July 2012
Andrew Gerrand

Talks about Go from Google I/O 2012.

Go version 1 is released, 28 March 2012
Andrew Gerrand

A major milestone: announcing Go 1, the first stable version of Go.

Getting to know the Go community, 21 December 2011
Andrew Gerrand

Please take a Gopher Survey. We want to hear from you!

Building StatHat with Go, 19 December 2011
Patrick Crosby

How StatHat uses Go, and why they chose it.

From zero to Go: launching on the Google homepage in 24 hours, 13 December 2011
Reinaldo Aguiar

How Go helped launch the Google Doodle for Thanksgiving 2011.

The Go Programming Language turns two, 10 November 2011
Andrew Gerrand

Happy 2nd birthday, Go!

Writing scalable App Engine applications, 1 November 2011
David Symonds

How to build scalable web applications using Go with Google App Engine.

Debugging Go programs with the GNU Debugger, 30 October 2011
Andrew Gerrand

Announcing a new article about debugging Go programs with GDB.

Go App Engine SDK 1.5.5 released, 11 October 2011
Andrew Gerrand

Go App Engine SDK 1.5.5 includes Go release.r60.2.

A preview of Go version 1, 5 October 2011
Russ Cox

What the Go team is planning for Go version 1.

Learn Go from your browser, 4 October 2011
Andrew Gerrand

Announcing the Go tour, https://tour.golang.org/.

The Go image/draw package, 29 September 2011
Nigel Tao

An introduction to image compositing in Go using the image/draw package.

The Go image package, 21 September 2011
Nigel Tao

An introduction to 2-D image processing with the Go image package.

The Laws of Reflection, 6 September 2011
Rob Pike

How reflections works in Go, how to think about it, and how to use it.

Two Go Talks: "Lexical Scanning in Go" and "Cuddle: an App Engine Demo", 1 September 2011
Andrew Gerrand

Two talks about Go from the Sydney GTUG: Rob Pike explains lexical scanning, and Andrew Gerrand builds a simple real-time chat using App Engine.

Go for App Engine is now generally available, 21 July 2011
Andrew Gerrand

You can use Go on App Engine now!

Error handling and Go, 12 July 2011
Andrew Gerrand

An introduction to Go errors.

First Class Functions in Go, 30 June 2011
Andrew Gerrand

Announcing a new Go codewalk, exploring first class functions.

Profiling Go Programs, 24 June 2011
Russ Cox, July 2011; updated by Shenghou Ma, May 2013

How to use Go's built-in profiler to understand and optimize your programs.

Spotlight on external Go libraries, 3 June 2011
Andrew Gerrand

Some popular Go libraries and how to use them.

A GIF decoder: an exercise in Go interfaces, 25 May 2011
Rob Pike

How Go's interfaces work nicely in the Go GIF decoder.

Go at Google I/O 2011: videos, 23 May 2011
Andrew Gerrand

Two talks about Go from Google I/O 2011.

Go and Google App Engine, 10 May 2011
David Symonds, Nigel Tao, and Andrew Gerrand

Announcing support for Go in Google App Engine.

Go at Heroku, 21 April 2011
Keith Rarick and Blake Mizerany

Two Heroku system engineers discuss their experiences using Go.

Introducing Gofix, 15 April 2011
Russ Cox

How to use go fix to update your code with each new Go release.

Godoc: documenting Go code, 31 March 2011
Andrew Gerrand

How and why to document your Go packages.

Gobs of data, 24 March 2011
Rob Pike

Introducing gob, a high-speed Go-to-Go wire encoding format.

C? Go? Cgo!, 17 March 2011
Andrew Gerrand

How to use cgo to let Go packages call C code.

Go becomes more stable, 16 March 2011
Andrew Gerrand

Moving from weekly unstable Go releases toward less frequent, more stable ones.

JSON and Go, 25 January 2011
Andrew Gerrand

How to generate and consume JSON-formatted data in Go.

Go Slices: usage and internals, 5 January 2011
Andrew Gerrand

How to use Go slices, and how they work.

Go: one year ago today, 10 November 2010
Andrew Gerrand

Happy 1st birthday, Go!

Debugging Go code (a status report), 2 November 2010
Luuk van Dijk

What works and what doesn't when debugging Go programs with GDB.

Real Go Projects: SmartTwitter and web.go, 19 October 2010
Michael Hoisie

How Michael Hoisie used Go to build SmartTwitter and web.go.

Go Concurrency Patterns: Timing out, moving on, 23 September 2010
Andrew Gerrand

How to implement timeouts using Go's concurrency support.

Introducing the Go Playground, 15 September 2010
Andrew Gerrand

Announcing the Go Playground, https://play.golang.org/.

Go Wins 2010 Bossie Award, 6 September 2010
Andrew Gerrand

Go wins a 2010 Bossie Award for “best open source application development software.”

Defer, Panic, and Recover, 4 August 2010
Andrew Gerrand

An introduction to the Go's defer, panic, and recover control flow mechanisms.

Share Memory By Communicating, 13 July 2010
Andrew Gerrand

A preview of the new Go codelab, Share Memory by Communicating.

Go's Declaration Syntax, 7 July 2010
Rob Pike

Why Go's declaration syntax doesn't look like, and is much simpler than, C's.

Go Programming session video from Google I/O, 6 June 2010
Andrew Gerrand

A talk by Rob Pike and Russ Cox about Go, from Google I/O 2010.

Go at I/O: Frequently Asked Questions, 27 May 2010
Andrew Gerrand

Q&A about Go from Google I/O 2010.

Upcoming Google I/O Go Events, 12 May 2010
Andrew Gerrand

If you will be at Google I/O 2010, be sure to catch up with the Go team at these events.

New Talk and Tutorials, 5 May 2010
Andrew Gerrand

More materials for learning about Go: one talk, one codelab, and one screencast.

JSON-RPC: a tale of interfaces, 27 April 2010
Andrew Gerrand

How to use the net/rpc package's interfaces to create a JSON-RPC system.

Third-party libraries: goprotobuf and beyond, 20 April 2010
Andrew Gerrand

Announcing Go support for Protocol Buffers, Google's data interchange format.

Go: What's New in March 2010, 18 March 2010
Andrew Gerrand

First post!