#​383 — October 15, 2021

Unsubscribe  |  Read on the Web

Go Weekly

Proposal: Don't Add Generics to Go's Core Libraries in 1.18 — Rob is suggesting that new versions of the core libraries be placed in the experimental namespace so folks can test them before core gets ‘genericized’. The idea is that while we get generics in 1.18, we can take more time to figure out how the core libraries will use them.

Rob Pike

"How to use these ideas in the standard library requires great thought and planning. Putting them in the library now also adds a significant burden to rolling out the release. I propose that we do not update the libraries in 1.18."

___
Rob Pike

'Hey Linker, Can You Spare a Meg?' — Tailscale, a mesh VPN service, has its core code written in Go, but on iOS their network extension is limited to a mere 15MB of memory. Ensuring they stayed within this limit involved the Tailscale engineers digging deep into Go’s runtime, garbage collector, and more, ultimately resulting in improvements for all Go users coming to Go 1.18.

Josh Bleecher Snyder (Tailscale)

Cloud Engineering Summit Speakers Announced — Join the summit on October 20th to hear from keynote speakers Kelsey Hightower and Emily Freeman, plus more than 40 other cloud engineering leaders and practitioners from companies like AWS, Google, Microsoft, Snowflake, Docker, Netflix, and more.

Pulumi sponsor

GoReleaser Can Now Create macOS Universal BinariesGoReleaser is a popular tool for cross-compiling and releasing Go projects. Universal binaries are necessary on macOS now due to supporting both amd64 and arm64 architectures with Apple’s new chip releases (i.e. the M1).

GoReleaser

Safer Enums in Go — For those of us that give more than an iota about enums, this post is a nice exploration of ways to make them better (integers bad, strings good) but certainly not perfect.

Miłosz Smółka

Where Go and GraphQL Collide: Behind The Curtain with genqlient — How the authors of genqlient (a GraphQL client) handled some of the thornier problems around code generation, JSON, interfaces, and more.

Ben Kraft (Khan Academy)

▶  Go in 100 Seconds — There’s nothing in this video you don’t already know, but you can store it away as a quick intro for potential Gophers.

Fireship

Jobs

Senior Software Engineer, Platform | Remote within US Timezones | Full-Time — Build the platform our teams use to ship innovative telehealth and workflow tools for over 1.8 million clinicians.
Doximity

Senior Golang Engineer (Cloud, Microservices, REST APIs) (Romania Remote) — CrowdStrike is the leader in cloud-delivered endpoint protection, which helps protect our customers from cybersecurity attacks.
Crowdstrike

Find a Job Through Hired — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers.
Hired

🛠 Code & Tools

Bubble Tea: A Powerful Elm-Inspired TUI Framework — Based on the Elm architecture, this is aimed at interactive terminal apps.

Charm

GoPlus (Go+): A More Scripty Variant of Go — It’s not going to win any awards for having a good, non-confusing name, but the overall idea of having a Go compatible language that leans more towards Python-style simplicity for scripting and data science use cases is interesting nonetheless.

GoPlus

OpenTelemetry and Observability: Achieving Full System Visibility

Lightstep sponsor

Decimal: Arbitrary-Precision Fixed-Point Decimal Numbers — We love that the library laments that it can only represent decimal numbers with up to 2 billion digits after the decimal point :-) Why not just use float64, you ask? They’ve answered that, and more.

Spring Engineering

Kratos 2.1: A Go Framework for Microservices — A “microservice-oriented governance framework” built around gRPC.

Kratos

truthy: Truthy Condition Testing with Go Generics — While this is “a little bit of a joke package”, it’s still something we should start to see once 1.18 is out.

Carl Johnson

Broadcast: Send Notifications to Multiple Goroutines with Guaranteed Delivery
Teiva Harsanyi

hostsfile: A Go-Powered Tool for Working with /etc/hosts Files
Kevin Burke

🕰 ICYMI (Some older stuff that's worth checking out...)