#​441 — December 16, 2022

Unsub  |  Web Version

Together with  JetBrains

The Go Weekly Newsletter

The Best of the Go Newsletter in 2022

This is the final issue of the year (we're back on January 6, 2023) so we're revisiting the most popular links (and releases) from this year. There'll be a few useful resources that escaped your attention or that you've since forgotten about so enjoy! 😁

Have a fantastic holiday season.
Peter Cooper, your editor

1: Effective Error Handling in Go — The most popular item of the year came in the very first issue of 2022 and presaged what would be a common concern this year: error handling. Brandon covered the basics, as well as some simple strategies you can follow to ensure your programs are more robust and easier to debug.

Brandon Schurman

2: All You Need(ed) to Know About Go 1.18 (in a Giant Diagram) — Go 1.18 was released in March, but someone (unnamed) put together an interesting diagram of the new things in 1.18 using the Miro whiteboarding tool. The 1.18 release notes ended up providing a more thorough and traditional overview of this year's big release, though.


Check Out GoLand 2022.3! — This version brings performance improvements and new features for generics and Go workspaces. The new Code Vision feature displays the usages next to functions and types. We’ve integrated Go Playground and added support for improvements to Go docs.

JetBrains sponsor

3: A Proposal: A try Statement for Error Handling — Inspired by the results of this year's Go community survey, a self-proclaimed 'if err != nil expert' put forward a proposal for adding some syntactic sugar to error handling – it appears to have fizzled out for now.

Greg Weber

4: An Official 'Getting Started with Generics' Tutorial — Generics were the most awaited feature in this year's Go 1.18 release, so it was great to see an official tutorial introducing the basics of using them.

Go Docs

5: Getting Familiar with Workspaces — Go 1.18’s other big feature, workspaces, also had its day in the sun (well, on the official Go blog anyway). “Workspaces in Go 1.18 let you work on multiple modules simultaneously without having to edit go.mod files for each module.” Beth explains how to get started.

Beth Brown (Go Team)

6: Making a Go Program 70% Faster with a One Character Change — How could we resist a title like that? This was the tale of tracking down a ‘silly mistake’ that led to a program running more slowly than it should have been.

Harry Marr

7: Google's Internal Go Style Guide — What goes for Google doesn’t necessarily go for everyone else, but it was interesting to see their stance on writing idiomatic Go. The actual style guide is here and is pretty short and sweet, focusing on clarity, simplicity and consistency as core tenets.


8: 'Crimes' with Go Generics — Many Go developers warned of a likely period of churn and trial and error as everyone began to learn when and when not to use generics. This post focused on the latter and on 'bad ideas' which, perhaps, could help you refine your own attitudes to using generics.

Xe Iaso

Forget Everything You Know About SSH — Say goodbye to managing SSH keys. Tailscale SSH works where Tailscale works & is free for personal use up to 20 devices.

Tailscale sponsor


🛠 Code & Tools

1: Wails v2: Build Cross-Platform Desktop Apps with Go — Wails is an Electron-a-like for Go for building cross-platform desktop apps using Go as the base language and JavaScript on the front (and, yes, JS can call your Go functions). This was by far the most popular code and tool related link of the year.

Lea Anthony

2: PocketBase: A Go-Powered Backend in One Binary — An interesting project that could replace Firebase in numerous scenarios. It’s written in Go but ultimately acts as the backend to your frontend JavaScript app. It uses SQLite and you get an admin dashboard built-in with file and user management too. Live demo and rather nice docs.

Gani Georgiev

3: GoPlay: A Better Go Playground? — Powered by React, the “better” here includes a dark theme, autocompletion, a ton of loadable snippets, file loading/saving, and WASM support. There’s also a Docker image so you can have a private playground of your own.

Denis Sedchenko

Argo CD as a Managed Service from the Creators of Argo — Akuity's architecture increases security, improves scalability, provides insights, and saves money. Available on free trial.

Akuity sponsor

4: Bud: A Full-Stack Web Framework for Gophers — In classic Ruby on Rails style, the creator has ▶️ a fantastic 15-minute screencast showing off how to use it – not to build a blog, but a Hacker News client of sorts.

Live Bud

5: Charm Gum: A Tool for 'Glamorous' Shell Scripts — Gum lets you create a CLI-based wizard just by providing a few arguments. The README is fantastic and packed with examples and animations. If you’d rather brew your own, Bubble Tea and Lip Gloss, upon which Gum depends, are available too.


6: Buffalo 1.0: Rapid Web Development in Go — Buffalo has been around for many years, and while 1.0 wasn’t a big, feature packed release, it was still a key milestone and remains the latest major version. If you’re new to Buffalo, there are plenty of tutorials to get you going.

Buffalo Team


Golang Engineers — 100% Remote (North/South America & Europe) — We’ve got several opportunities for Go devs (some working directly with Bill Kennedy!) and would love to hear from those looking for new challenges in distributed systems projects.
Ardan Labs

Site Reliability Engineer — Join our "kick ass" team. Our software team operates from 17 countries and we're always looking for more exceptional engineers.
Sticker Mule

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.