Go structured logging with slog

Before the release of version 1.21, you couldn’t set levels for your log messages in Go without either using third-party libraries or writing your own boilerplates. Coming from Python, I’ve always found this odd, considering that this capability has been in the Python...

Go structured logging with slog

Before the release of version 1.21, you couldn’t set levels for your log messages in Go without either using third-party libraries or writing your own boilerplates. Coming from Python, I’ve always found this odd, considering that this capability has been in the Python...

Programs shouldn't commit to fixed and predictable log messages

Announcing GoReleaser v1.20 — a quality-of-life release

A little over 100 commits in small-ish quality-of-life improvements.

Go 1.21 is released!

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

Go 1.21 released

#​472 — August 8, 2023 Unsub  |  Web Version ⛱ I'm taking two weeks off and will be back on Tuesday, August 29. So if you don't see the newsletter turn up for a while, rest assured it's not your fault ;-) You're welcome to hit reply and send in things...

Name before type: why 'age int' is better than 'int age'

A variable's name is more important than its type, so the name should be more prominent and come first in declarations.

Slices Package: Binary Search

Series Here are all the posts in this series about the slices package. Binary Search Clip, Clone, and Compact Compare Contains, Delete, and Equal Introduction Go’s most important data structure is the slice and it was designed from the beginning to be mechanically sympathetic...

The Go team's new project templating tool

#​471 — August 1, 2023 Unsub  |  Web Version Go Weekly Experimenting with Project Templates with gonew — The Go team has unveiled a new, experimental tool for creating new Go projects from predefined templates. Anyone can write the...

Experimenting with project templates

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