Bringing PGO to the build pipeline

#504 — April 23, 2024 Unsub | Web Version Go Weekly How Dolt Uses GitHub Actions to Create Performance-Guided Optimization Builds — A look behind the scenes at Dolt's build process and how their team has introduced profile-guided optimization (PGO) into the build pipeline. There’ … | Continue reading


@golangweekly.com | 4 days ago

The latest Go developer survey results are in

#503 — April 16, 2024 Unsub | Web Version If you wondered why you didn't get an issue last week, we took a (late) week off for Easter, but now we're back :-) __ Your editor, Peter Cooper Go Weekly Go Performance from Version 1.0 to 1.22 — Two years ago we enjoyed the author’s Go … | Continue reading


@golangweekly.com | 11 days ago

Go 1 turns twelve

#502 — April 2, 2024 Unsub | Web Version 🐣 A quick note to say Go Weekly is taking next Tuesday off, as part of some Easter break-taking. We'll be back on Tuesday, April 16 :-) __ Your editor, Peter Cooper Go Weekly Freeze: Generate Images of Code and Terminal Output — Fr … | Continue reading


@golangweekly.com | 25 days ago

No-one likes a leaky goroutine

#501 — March 26, 2024 Unsub | Web Version Go Weekly Learning Go in 2024; From Beginner to Senior — Go learning resources are plentiful and cover the gamut of media from text, to video, to podcasts, and all skill levels from beginner to expert. Here, Matt brings together six years … | Continue reading


@golangweekly.com | 1 month ago

Flight recording for Go apps

#500 — March 19, 2024 Unsub | Web Version Go Weekly More Powerful Go Execution Traces — Over the last two releases, the Go team has worked to fix and enhance execution tracing, resulting in a 10x drop in overhead and much more scalable traces. These enhancements have spawned two … | Continue reading


@golangweekly.com | 1 month ago

Are single letter variables that bad?

#​499 — March 12, 2024 Unsub  |  Web Version Go Weekly High-Speed Packet Transmission in Go: From net.Dial to AF_XDP — How can you send as many packets per second as possible from a Linux machine using Go? Andree wanted to find out. As he says, “it should be a fun read … | Continue reading


@golangweekly.com | 1 month ago

How things work at Charm

#​498 — March 5, 2024 Unsub  |  Web Version Go Weekly  How I Keep Myself Alive Using Go — A look into a fascinating use of open source, medical devices, and Go to help a type 1 diabetic monitor their blood glucose levels and alert on anomalies, including sending messag … | Continue reading


@golangweekly.com | 1 month ago

Becoming the engineering manager of the Go team

#​497 — February 27, 2024 Unsub  |  Web Version Go Weekly Robust Generic Functions on Slices — The core library offers some great generic functions for slices, and understanding how each functions (modifies the slice, creates a new slice, etc.) is crucial to avoiding e … | Continue reading


@golangweekly.com | 2 months ago

Go is popular.. again!

#​496 — February 20, 2024 Unsub  |  Web Version Go Weekly The HTTP Routing Enhancements in Go 1.22 — The Go team’s official take on the new HTTP routing enhancements in Go 1.22: “Go 1.22 brings two enhancements to the net/http package’s router: method matching and wildcar … | Continue reading


@golangweekly.com | 2 months ago

The one with Go 1.22 everywhere

#​495 — February 13, 2024 Unsub  |  Web Version Go Weekly Go 1.22 Released — Keeping in tradition with most even numbered Go releases landing in February, Go 1.22 is here! In theory, the upgrade is as simple as updating the version in go.mod (just be careful of any net … | Continue reading


@golangweekly.com | 2 months ago

'I don't scoff at 2% improvements'

#​494 — February 6, 2024 Unsub  |  Web Version Go Weekly Testing Out Profile-Guided Optimization on Dolt's SQL Benchmarks — Profile-guided optimization was introduced in Go 1.20. The Dolters(?) created a benchmark and saw small (though not trivial) improvements to both … | Continue reading


@golangweekly.com | 2 months ago

Go 1.22 Release Candidate 2

#​493 — January 30, 2024 Unsub  |  Web Version Go Weekly The Latest Go Developer Survey is Now Open — 2024’s first official Go Developer Survey is out (you can take it here) and the Go team is ready for your feedback. It closes on February 11th, so don’t wait too long. … | Continue reading


@golangweekly.com | 2 months ago

Russ Cox on Go changes

#​492 — January 23, 2024 Unsub  |  Web Version Go Weekly Rust vs Go in 2024? — A perennially popular post from yesteryear has been tweaked for 2024 (though the pros and cons remain quite similar) with a comparison of the ‘both awesome’ languages including what they’re … | Continue reading


@golangweekly.com | 3 months ago

A closer look at Go 1.22

#​491 — January 16, 2024 Unsub  |  Web Version Go Weekly Initial Thoughts on Go 1.22 — 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 … | Continue reading


@golangweekly.com | 3 months ago

Interactive examples of Go 1.22 features

#​490 — January 9, 2024 Unsub  |  Web Version Go Weekly Rob Pike: 'What We Got Right, What We Got Wrong' — A written version (the script, really) of Rob’s GopherConAU talk given in November (▶️ 47-minute video here), where he recounts stories from building Go, includin … | Continue reading


@golangweekly.com | 3 months ago

The best of the Go newsletter in 2023

#​489 — December 19, 2023 Unsub  |  Web Version Go Weekly The Best of the Go Newsletter in 2023 Welcome to the final issue of 2023! We'll be back on Tuesday, January 9, but before that, we want to take a look back at the most popular items of the year, plus a few bonuses … | Continue reading


@golangweekly.com | 4 months ago

Python and PHP are Go's newest friends

#​488 — December 12, 2023 Unsub  |  Web Version  We're prepping our annual roundup issue for next week, just before we take our Christmas break, so keep an eye out for it next Tuesday :-)__Your editor, Peter Cooper Go Weekly The Latest Go Developer Survey Results — The … | Continue reading


@golangweekly.com | 4 months ago

Using Go to build a WASM-powered 'static' site

#​487 — December 5, 2023 Unsub  |  Web Version Go Weekly errtrace: An Alternative to Stack Traces for Your Errors — Inspired by Zig, errtrace is an experimental package to trace an error’s return path through a Go program, i.e. the code path that the error took to get … | Continue reading


@golangweekly.com | 4 months ago

🥶 Like me, Go 1.22 is now frozen

#​486 — November 28, 2023 Unsub  |  Web Version Go Weekly GoFakeIt 6.25.0: A Random Fake Data Generator — Has over 260 functions for generating things like names, emails, locations, colors, user agents, breakfast items (oh yes!), and more. v6.25.0 newly introduces a te … | Continue reading


@golangweekly.com | 5 months ago

There's no nil to panic

#​485 — November 21, 2023 Unsub  |  Web Version Go Weekly River: A Fast, Robust Job Queue for Go + Postgres — A new in-beta, open-source job queue “for building fast, airtight applications” that’s written in Go and takes advantage of generics. It uses pgx to interface … | Continue reading


@golangweekly.com | 5 months ago

Happy birthday to Go

#​484 — November 14, 2023 Unsub  |  Web Version Go Weekly Fourteen Years of Go — Russ recaps a productive year for Go that included the introduction of profile-guided optimization (PGO), enhanced coverage profiles to improve testing, better toolchain management, the fi … | Continue reading


@golangweekly.com | 5 months ago

A Charm-ed life for Go CLI tooling

#​483 — November 7, 2023 Unsub  |  Web Version Go Weekly Charm Raises $6M to Build the Next Generation of the Command Line — Like much of the Go community, we’ve been huge fans of Charm’s approach to building useful Go-based tools and CLI libraries (such as Bubble Tea) … | Continue reading


@golangweekly.com | 5 months ago

Some Go tricks and treats

#​482 — October 31, 2023 Unsub  |  Web Version Go Weekly Awesome Go: Thousands of Categorized Go Resources — A useful resource that continues to get frequent updates, and is well worth revisiting in what has been a surprisingly quiet week for Go news.. If you have a G … | Continue reading


@golangweekly.com | 5 months ago

Wishing the 'if err != nil's away..

#​481 — October 24, 2023 Unsub  |  Web Version Go Weekly ! 'Bang'-ing Errors in Go? — Criticisms of the verbosity of error handling in Go are common, but proposed solutions? Much less so. Ted suggests a syntax initially using exclamation marks ('bangs'), then carets (^ … | Continue reading


@golangweekly.com | 6 months ago

Go 1.22's improved HTTP routing capabilities

#​480 — October 17, 2023 Unsub  |  Web Version Go Weekly Better HTTP Server Routing in Go 1.22 — Back in May, we linked to a discussion about enhancing http.ServeMux’s routing capabilities. In July, it became a proposal, and now Eli Bendersky gives a practical example … | Continue reading


@golangweekly.com | 6 months ago

Considering a v2 of encoding/json

#​479 — October 10, 2023 Unsub  |  Web Version Go Weekly Thinking About a Better encoding/json — Led by Joe Tsai, but with input from several fellow gophers, this is a discussion to kickstart the process of potentially modernizing the long-standing encoding/json packag … | Continue reading


@golangweekly.com | 6 months ago

It's Go vs Rust again

#​478 — October 3, 2023 Unsub  |  Web Version Go Weekly Rust vs Go: A Hands-On Comparison — Despite all their differences, Rust and Go are frequently compared. Someone who's predominantly a Rust developer has given the idea another go, focusing on the practicalities of … | Continue reading


@golangweekly.com | 6 months ago

Fixing Go's for loops, for real

#​477 — September 26, 2023 Unsub  |  Web Version Go Weekly Organizing a Go Module — It’s common for Go developers to think about how to organize the files and directories in projects (some of our most popular links have been on this topic). The Go project itself has te … | Continue reading


@golangweekly.com | 7 months ago

Explaining Go's WebAssembly System Interface support

#​476 — September 19, 2023 Unsub  |  Web Version Go Weekly fx 30: The Go-Powered Terminal JSON Viewer — fx has long been a useful tool for looking at JSON files, but Anton has taken the opportunity to rewrite it from the ground up with a new themed TUI look, regex sear … | Continue reading


@golangweekly.com | 7 months ago

Let's get optimizing

#​475 — September 12, 2023 Unsub  |  Web Version Go Weekly Profile-Guided Optimization (PGO) in Go 1.21 — PGO has been a popular topic for blog posts recently, but here’s an as-close-to-official-as-it-gets example of using it to improve code, including deeper dives int … | Continue reading


@golangweekly.com | 7 months ago

'Cgo performance is good actually'

#​474 — September 5, 2023 Unsub  |  Web Version Go Weekly Perfectly Reproducible, Verified Go Toolchains — Go 1.21 contains some significant features, but truly reproducible builds is a big deal and Russ goes (deep) into how it works here, complete with a walkthrough. … | Continue reading


@golangweekly.com | 7 months ago

'There will not be a Go 2 that breaks Go 1 programs.'

#​473 — August 29, 2023 Unsub  |  Web Version We're back! Well, almost.. If you didn't get an issue of Go Weekly in the past few weeks, don't worry, I was on vacation. I'm technically on vacation for a couple more days but didn't want too many issues to pass by, so here we are. … | Continue reading


@golangweekly.com | 8 months ago

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 for the next issue though, … | Continue reading


@golangweekly.com | 8 months ago

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 these templates, which are then packaged … | Continue reading


@golangweekly.com | 9 months ago

The one where Go keeps getting better

#​470 — July 25, 2023 Unsub  |  Web Version ✍️ It feels like there's a particularly strong drive to improve Go lately, whether it's through the ever growing number of proposals from folks like Russ Cox, the development of tools like govulncheck, or folks writing articles about h … | Continue reading


@golangweekly.com | 9 months ago

Russ Cox makes a case for coroutines

#​469 — July 18, 2023 Unsub  |  Web Version Go Weekly A Rationale for Introducing Coroutines to Go — Many of the initial reactions to this suggestion by Russ Cox to introduce coroutines to Go were negative, with folks instead preferring Go’s existing channels based app … | Continue reading


@golangweekly.com | 9 months ago

Go, meet Python. Python, meet Go.

#​468 — July 11, 2023 Unsub  |  Web Version Go Weekly Finding Bugs with Fuzzing — The final post in a series about fuzz testing in Go (you can start here) wraps things up with a practical example of finding and fixing a subtle bug in Go code using the process. John Ar … | Continue reading


@golangweekly.com | 9 months ago

Answering all the big questions

#​467 — July 4, 2023 Unsub  |  Web Version Go Weekly Frequently Asked Questions About Go — Did you know there's an official Go FAQ? It's been around forever, but somehow we’d not run into it it before.. It’s packed with interesting stuff and worth a flip through. Some … | Continue reading


@golangweekly.com | 9 months ago

Go's three new builtin functions

#​466 — June 27, 2023 Unsub  |  Web Version Go Weekly Go 1.21 Release Candidate — Despite merely being in RC (the final release is expected in August), Go 1.21 fever is high right now. Set to be the biggest release since 1.18, there are a lot of good reasons to be exci … | Continue reading


@golangweekly.com | 10 months ago

Random numbers in Go, version 2

#​465 — June 20, 2023 Unsub  |  Web Version Go Weekly Initializing Large Static Maps in Go — Dolt is an SQL database implemented in Go and it needed to bring a lot of static data tables into its binary for string collation purposes. The team's first approach hurt perfo … | Continue reading


@golangweekly.com | 10 months ago

Go toolchain changes in Go 1.21+

#​464 — June 13, 2023 Unsub  |  Web Version ✍️ If you're intrigued about domain-driven design (DDD), we've got an interview with Matt Boyle, the author of Domain-Driven Design with Go – it's at the end of today's issue.__Your editor, Peter Cooper Go Weekly An Update on … | Continue reading


@golangweekly.com | 10 months ago

Go's on IBM mainframes now

#​463 — June 6, 2023 Unsub  |  Web Version Go Weekly Goxygen 0.4: Quickly Generate a Go Backend for a JavaScript Project — A tool that sets up a new Go-based project with Angular, React, or Vue on the front-end, Go in the back, and Docker and Docker Compose files to sp … | Continue reading


@golangweekly.com | 10 months ago

Let's build a distributed K/V store in Go

#​462 — May 30, 2023 Unsub  |  Web Version Go Weekly Implementing a Distributed Key-Value Store in Go — Phil has spent many months getting up to speed with the Raft consensus algorithm and goes into serious depth on using it along with Go as the basis for a distributed … | Continue reading


@golangweekly.com | 11 months ago

1 million concurrent tasks

#​461 — May 23, 2023 Unsub  |  Web Version Go Weekly How to Start a Go Project in 2023 — The same author wrote a similar piece in 2018; a bit has changed since then. While this may be aimed at new gophers, experienced folks could find something to take away. “Older gui … | Continue reading


@golangweekly.com | 11 months ago

The latest Go survey results

#​460 — May 16, 2023 Unsub  |  Web Version Go Weekly The Go Developer Survey 2023 Q1 Results — Nearly 6,000 gophers took part in the latest developer survey, and now we have the results. Key takeaways include: 92% of respondents are satisfied using Go. Error handling … | Continue reading


@golangweekly.com | 11 months ago

A modest proposal?

#​459 — May 9, 2023 Unsub  |  Web Version Go Weekly go-callvis: Visualize the Call Graph of Go Programs — We first linked to this project over six years ago, but it’s still going strong and has reached version 0.7. The idea is simple: turn the call graph of a Go progra … | Continue reading


@golangweekly.com | 11 months ago

Writing an OS in Go?

#​458 — May 2, 2023 Unsub  |  Web Version Go Weekly Rueidis 1.0: A Fast Redis Client with Caching — Endorsed enough to be in the official Redis GitHub org, at least, this is a Redis client focused on performance with auto-pipelining of non blocking commands, client-sid … | Continue reading


@golangweekly.com | 12 months ago

Test gains and memory drains

#​457 — April 25, 2023 Unsub  |  Web Version Go Weekly How to Troubleshoot Memory Leaks with Grafana Pyroscope — Explore common causes of memory leaks in Go and learn to use Pyroscope, an open source continuous profiling solution, itself written in Go, to find and fix … | Continue reading


@golangweekly.com | 1 year ago