---
title: "A closer look at Go 1.22"
publication: "Go Weekly"
issue: 491
published_at: "2024-01-16"
canonical_url: "https://golangweekly.com/issues/491"
---

Plus a GUI for execution traces, and finding harmony with Discord. |        

#​491 — January 16, 2024 

[Unsub](https://golangweekly.com/leave/*|UID|*)|[Web Version](https://golangweekly.com/issues/491)  

Together with [![Dragonfly\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_1296,h_236/e_make_transparent/co_white,e_outline:17/s0zmgewhr5q9s8jl1gfd.png)](https://www.dragonflydb.io/?utm_campaign=Cooper%20Press%20Q1&utm_source=email&utm_medium=email&utm_content=Go%20Weekly)  

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/wywka9utpyrjxehlzit4.jpg)](https://www.dolthub.com/blog/2024-01-12-golang-1-22rc/)  

[Initial Thoughts on Go 1.22](https://www.dolthub.com/blog/2024-01-12-golang-1-22rc/) — 1.22 is due next month, but the release candidate gives us a look at plenty of changes and improvements coming down the pike, including new default behavior for loop variables in `for` loops, the ‘rangefunc’ experiment _(more on that next)_, and even some performance improvements. 

Jason Fulghum (DoltHub)   

[The Rangefunc Experiment](https://go.dev/wiki/RangefuncExperiment) — The Go team is investigating the addition of range-over function iterators to Go, with 1.22 getting a preliminary implementation behind an environment variable. They want feedback on how it works and this page shows off the detail. _(You’ll need the 1.22 RC or later to try this now.)_ 

The Go Wiki   [![\](https://copm.s3.amazonaws.com/6e92e852.png)](https://www.dragonflydb.io/?utm_campaign=Cooper%20Press%20Q1&utm_source=email&utm_medium=email&utm_content=Go%20Weekly) 

[Redis With Wings](https://www.dragonflydb.io/?utm_campaign=Cooper%20Press%20Q1&utm_source=email&utm_medium=email&utm_content=Go%20Weekly) — Dragonfly is a simple, performant, and cost-efficient in-memory data store, perfect as a cache or database for your high-performance Go apps. Dragonfly is fully compatible with Redis APIs but without the Redis management complexity. 

Dragonfly sponsor   

[What’s New in Go 1.22: `reflect.TypeFor`](https://blog.carlana.net/post/2024/golang-reflect-type-for/) — Carlana continues our train of Go 1.22 items with a look behind the scenes of the implementation of `reflect.TypeFor`, which she worked on. 

Carlana Johnson   

_QUICK BITS:_ 

- [Go 1.21.6 and 1.20.13](https://groups.google.com/g/golang-announce/c/F12eMaUITDs) have been released.
- Anton Medvedev [reflects on five years of work](https://expr-lang.org/blog/five-years-in-making) on the fantastic [Expr](https://expr-lang.org/) expression language and expression evaluator.
- Alex Ellis experiments with [using GitHub Actions as a 'time-sharing supercomputer'](https://blog.alexellis.io/github-actions-timesharing-supercomputer/). Good fun, and using Go, of course.   

[How Do You Represent a JSON Field That Could Be Absent, `null` or Have a Value?](https://www.jvt.me/posts/2024/01/09/go-json-nullable/) — Why it’s surprisingly hard to work out if a field has been sent or whether it’s explicitly null when using `encoding/json`, plus [a new library](https://github.com/oapi-codegen/nullable) to help with the problem. 

Jamie Tanna   

[Using React with templ in Go](https://templ.guide/syntax-and-usage/using-react-with-templ/) — A tutorial on how to incorporate React’s rich ecosystem of components as 'islands of interactivity' embedded within the server-side rendering capabilities of Go and[templ](https://github.com/a-h/templ). 

Adrian Hesketh   

['Sign in with Google' in Go](https://eli.thegreenplace.net/2024/sign-in-with-google-in-go/) — A quick look at implementing a ‘Sign-in with Google’ authentication method for your app. 

Eli Bendersky   

▶[Memory Management in Go: The Good, the Bad and the Ugly](https://www.youtube.com/watch?v=SKenR18NM04) — Stays reasonably high-level and accessible. 
Liam Hampton   

[Go Test Doubles by Example](https://aminrb.me/blog/go-test-double/) 
Amin Rashidbeigi  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ric7ksf0yj5mknzn72oz.jpg)](https://gotraceui.dev/)  

[Gotraceui: GUI Frontend for Go Execution Traces](https://gotraceui.dev/) — Meant to be a faster, more accessible, and more powerful alternative to `go tool trace` with a [Gio UI](https://gioui.org/)-powered interface tuned specifically to the unique characteristics of Go traces. Now with added flame graphs 🔥 [GitHub repo.](https://github.com/dominikh/gotraceui) 

Dominik Honnef   

[Try a Lightning-Fast Pairing Tool Built with You in Mind](https://tuple.app?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=Q1_2024&utm_content=Go+Newsletter_Sponsored+Link) — Tuple will change the way you think about pair programming. Try it with your team free for 14 days, no card required. 

Tuple sponsor   

[Avo 0.6: Generate x86 Assembly with Go](https://github.com/mmcloughlin/avo) — Makes assembly easier to write by way of Go control structures and virtual registers. An [example of adding two numbers](https://github.com/mmcloughlin/avo/tree/master/examples/add) shows off how it works in a simple way. [v0.6](https://github.com/mmcloughlin/avo/releases/tag/v0.6.0) adds support for more AVX instructions and improves Go 1.20+ support. 

Michael McLoughlin   

[Algnhsa 1.1: AWS Lambda `net/http` Server Adapter](https://github.com/akrylysov/algnhsa) — Run Go webapps serverlessly on AWS Lambda with API Gateway or ALB without changing existing HTTP handlers. 

Artem Krylysov   

[Harmony: A 'Peaceful' Module for Using Discord's API](https://github.com/skwair/harmony) — When I first linked this years ago, I wrote _“[Discord](https://discordapp.com/) is a popular chat app, particularly in gaming communities.”_ Imagine needing to be told that nowadays.. 😆 

Antoine Couchard      

📰 Classifieds   

🪝 Receive, authenticate, transform, filter, route, and deliver webhooks with the [Hookdeck](https://hookdeck.com/docs/receive-webhooks?lang=go&ref=goweekly-491) Event Gateway. [Try the receiving webhooks quickstart](https://hookdeck.com/docs/receive-webhooks?lang=go&ref=goweekly-491). 

--- 

🗓️ [GopherCon Europe](https://gophercon.eu) is taking place this February (next month!) and June in Athens, Greece and Berlin, Germany respectively. Ardan Labs is also [running some Go workshops](https://events.ardanlabs.com) at the event in Greece.      

[Steampipe: Query Cloud Services with SQL](https://steampipe.io/) — Use SQL to query and even _join_ across [over 100 APIs](https://hub.steampipe.io/plugins) from providers like Airtable, AWS, Heroku, Slack and Stripe, as well as social media sites like Reddit and Hacker News. 

Steampipe   

- [go-github 58.0](https://github.com/google/go-github) – Client library for the GitHub v3 API.
- [Permify 0.7](https://github.com/Permify/permify) – Google Zanzibar-inspired authorization.
- [JiraCLI 1.5](https://github.com/ankitpokhrel/jira-cli) – Feature-rich, interactive CLI tool for Jira.
- [go-sqlite 1.1](https://github.com/zombiezen/go-sqlite/releases/tag/v1.1.0) – Low-level interface to SQLite 3.
- [Kaf 0.2.7](https://github.com/birdayz/kaf) – Modern CLI for Apache Kafka.
- [NATS.go 1.32](https://github.com/nats-io/nats.go) – Go client for NATS.         

Curated by Peter Cooper and [Glenn Goodrich](https://twitter.com/ruprict). 

[Change your email](https://golangweekly.com/edit_subscription/*|UID|*)
[Stop getting this newsletter](https://golangweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
