Tidying up the Go web experience

The Go Blog

Tidying up the Go web experience

  Russ Cox
  18 August 2021

  In 2019, which seems like a decade ago, we launched go.dev,

a new hub for Go developers, along with the companion site pkg.go.dev, providing information about Go packages and modules. The go.dev web site contains useful information for people evaluating Go, but golang.org continued to serve distribution downloads, documentation, and a package reference

3y | Golang
Go 1.17 is released

Today the Go team is thrilled to release Go 1.17, which you can get by visiting the download page. This release brings additional improvements to the compiler, namely a new way of passing function arguments and results. This change has shown about a 5% performance improvement in Go programs and reduction in binary sizes of around 2% for amd64 platforms. Support for more platforms will come in future releases. Go 1.17 also adds support for the 64-bit ARM architecture on

3y | Golang
The Go Collective on Stack Overflow

Since the earliest days of Go, Stack Overflow has been a significant part of the Go user experience. For the past five years, the Go user survey has consistently identified Stack Overflow as the #1 place users go to find answers to their Go questions. We are excited to share that we have partnered with Stack Overflow to be the very first open source project in their latest product offering, Collectives™ on Stack Overflow, which launched today.

Stack Overflow’s mission

4y | Golang
Fuzzing is Beta Ready

We are excited to announce that native fuzzing is ready for beta testing in its development branch, dev.fuzz! Fuzzing is a type of automated testing which continuously manipulates inputs to a program to find issues such as panics or bugs. These semi-random data mutations can discover new code coverage that existing unit tests may miss, and uncover edge case bugs which would otherwise go unnoticed. Since fuzzing can reach these edge cases, fuzz testing is particularl

4y | Golang
A Proposal for Adding Generics to Go

Generics proposal We’ve filed a Go language change proposal to add support for type parameters for types and functions, permitting a form of generic programming.

Why generics? Generics can give us powerful building blocks that let us share code and build programs more easily. Generic programming means writing functions and data structures where some types are left to be specified later. For example, you can write a function that operates on a slice of som

4y | Golang
Go Developer Survey 2020 Results

Thank you for the amazing response! In 2020, we had another great turnout with 9,648 responses, about as many as 2019. Thank you for putting in the time to provide the community with these insights on your experiences using Go!

New modular survey design You may notice some questions have smaller sample sizes ("n=") than others. That's because some questions were shown to everyone while others were only shown to a random subset of respondents.

4y | Golang
Contexts and structs

Introduction In many Go APIs, especially modern ones, the first argument to functions and methods is often context.Context. Context provides a means of transmitting deadlines, caller cancellations, and other request-scoped values across API boundaries and between processes. It is often used when a library interacts — directly or transitively — with remote servers, such as databases, APIs, and the like. The documentation for context states:

Contexts should not be stored in

4y | Golang
New module changes in Go 1.16

We hope you're enjoying Go 1.16! This release has a lot of new features, especially for modules. The release notes describe these changes briefly, but let's explore a few of them in depth.

Modules on by default The go command now builds packages in module-aware mode by default, even when no go.mod is present. This is a big step toward using modules in all projects. It's still possible to build packages in GOPATH mode by setting the GO111MODULE environmen

4y | Golang
Go 1.16 is released

Today the Go team is very happy to announce the release of Go 1.16. You can get it from the download page. The new embed package provides access to files embedded at compile time using the new //go:embed directive. Now it is easy to bundle supporting data files into your Go programs, making developing with Go even smoother. You can get started using the embed package documentation. Carl Johnson has also written a nice tutorial, “How to use Go embed”. Go 1.16 also adds

4y | Golang
Gopls on by default in the VS Code Go extension

We're happy to announce that the VS Code Go extension now enables the gopls language server by default, to deliver more robust IDE features and better support for Go modules.

(gopls provides IDE features, such as as intelligent autocompletion, signature help, refactoring, and workspace symbol search.) When Go modules were released two years ago, they completely changed the landscape of Go developer tooling. Tools like goimports and godef previously depended on the f

4y | Golang

Căutare