---
title: "Let's get optimizing"
publication: "Go Weekly"
issue: 475
published_at: "2023-09-12"
canonical_url: "https://golangweekly.com/issues/475"
---

Plus some love for the Go gopher, and Go takes 8th place in IEEE's language roundup. |        

#​475 — September 12, 2023 

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

Together with [![Ardan Labs\](https://res.cloudinary.com/cpress/image/upload/e_make_transparent/co_white,e_outline:7,q_auto/uf5bdgdgdbgcbdrzi6r7.png)](https://www.ardanlabs.com/consulting/?utm_source=cooperpress)  

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ehdmc5luqjaalihbbm3n.jpg)](https://go.dev/blog/pgo)  

[Profile-Guided Optimization (PGO) in Go 1.21](https://go.dev/blog/pgo) — [PGO](https://go.dev/doc/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 into two major optimizations enabled by the process. If nothing else convinces you to give it a shot, consider this: _“In Go 1.21, workloads typically get between 2% and 7% CPU usage improvements from enabling PGO.”_ 

Michael Pratt (The Go Team)   

And if you fancy _another_ article on the topic, Landon Clipp has [another practical intro to PGO here](https://landontclipp.github.io/blog/2023/08/25/profile-guided-optimizations-in-go/) that provides more of a "user-facing perspective."  [![\](https://copm.s3.amazonaws.com/bcc68a3c.png)](https://www.ardanlabs.com/consulting/?utm_source=cooperpress) 

[Go! Experts at Your Service](https://www.ardanlabs.com/consulting/?utm_source=cooperpress) — Do you need help filling skill gaps, speeding up development & creating high performing software with Go, Docker, K8s, Terraform and Rust? We’ll help you maximize your architecture, structure, tech-debt and human capital. 

Ardan Labs Consulting sponsor   

[Scaling `gopls` for the Growing Go Ecosystem](https://go.dev/blog/gopls-scalability) — The official Go blog gives us _two_ posts to sink our teeth into this week. This time, the spotlight shines on the [`gopls` Go language server](https://pkg.go.dev/golang.org/x/tools/gopls) used by a variety of IDEs to enhance their Go support. This post looks at some recent advancements and speedups, and invites you to [take this survey](https://google.qualtrics.com/jfe/form/SV_4SnGxpcSKN33WZw) if you’re a `gopls` user. 

Robert Findley and Alan Donovan   

_QUICK BITS:_ 

- [Go 1.21.1 and 1.20.8 have been released.](https://groups.google.com/g/golang-announce/c/Fm51GRLNRvM) Minor point releases with some security fixes.
- I want to take another opportunity to link to [The Free Gophers Pack](https://github.com/MariaLetta/free-gophers-pack) by Maria Letta – it's a helpful set of Go gopher illustrations (based upon the original by Renée French) and we used it in today's lead image.
- Talking of the Go gopher, back in 2016 Renée French gave an [▶️ interesting talk about the Go gopher](https://www.youtube.com/watch?v=4rw_B4yY69k), how it came together, and some of Renée's favorite adaptations of it.
- If you've got to write any C++, [coost](https://github.com/idealvin/coost) is worth a look. It's a tiny Boost-esque library to make C++ easier to write and with a little more Go flavor, including Go-style coroutines.
- _IEEE Spectrum_ has released its [list of 'top programming languages' in 2023](https://spectrum.ieee.org/the-top-programming-languages-2023) and Go does pretty well in 8th place.
- 📅 🤖 In a few weeks I'm attending the [AI Engineer Summit](https://www.ai.engineer/summit) in SF – if you're into the rapidly growing field of using AI and ML tools and technologies alongside software development, check it out. Even if you can't attend, you can snag a free remote ticket to watch from afar.   

▶['This Will Make Everyone Understand Go Interfaces'](https://www.youtube.com/watch?v=rH0bpx7I2Dk) — For anyone experiencing confusion, Anthony GG takes on the task in his inimitable style. 

Anthony GG   

[What I Have Changed My Mind About in Software Development](https://henrikwarne.com/2023/09/10/what-i-have-changed-my-mind-about-in-software-development/) — _“Anybody who doesn’t change their mind a lot is dramatically underestimating the complexity of the world we live in.”_ – Jeff Bezos 

Henrik Warne   

[Free Course: Temporal 102 with Go](https://t.mp/3sOBjhi) — Learn how to utilize the full development cycle in Temporal with this practical follow-up to our essentials 101 course. 

Temporal Technologies sponsor   

[Using Tailscale for Authentication of Internal Tools](https://blog.cloud66.com/using-tailscale-for-authentication-of-internal-tools) 
Khash Sajadi   

[Implementing a ClickHouse Output Plugin for Telegraf in Go](https://1823.pl/articles/implementing-a-clickhouse-output-plugin-for-telegraf) 
David Wołosowicz   

[A Practical Tour of Common File Operations in Go](https://www.honeybadger.io/blog/comprehensive-guide-to-file-operations-in-go/) 
Adebayo Adams  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/xowkecrguksufntfsd0g.jpg)](https://wails.io/)  

[Wails 2.6: Create Desktop Apps with Go, JS and CSS](https://wails.io/) — Ever been envious of JavaScript developers being able to use Electron to build desktop apps? Wails brings a similar option to Go. v2 is mature and solid, but [Wails v3 is on the way](https://wails.io/blog/the-road-to-wails-v3) and promises to be a big update. [GitHub repo.](https://github.com/wailsapp/wails) 

Lea Anthony   

[Goxygen 0.7: Quickly Generate a Go Backend for a JS Project](https://github.com/Shpota/goxygen) — A tool that sets up a new Go-based project with Angular, React, or Vue in the front-end, and Docker and Docker Compose files to make it all work. v0.7 introduces Go 1.21 support. 

Sasha Shpota   

[[Blog\] How to Hack Kubernetes (And How to Protect It)](https://goteleport.com/blog/how-to-hack-kubernetes/?utm_campaign=0912Cooperpress&utm_medium=partner&utm_source=golang) — This roundup covers the top seven ways your cluster will likely be attacked and a corresponding countermeasure. 

Teleport | goteleport.com sponsor   

[Participle 2.1: A Simple Parser Package](https://github.com/alecthomas/participle) — Aims to provide a straightforward and idiomatic way to define parsers in Go using a familiar approach of using struct field tags to define a grammar, so if you’ve used `encoding/json` before, you’re well on your way. 

Alec Thomas   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/bvx2zuwg3zxmabc9gxmn.jpg)](https://github.com/charmbracelet/lipgloss)  

[Lip Gloss 0.8: Style Definitions for Nice Terminal Layouts](https://github.com/charmbracelet/lipgloss) — Provides a ‘fluent’-style API for stylizing text output from your programs in an attractive way, as you'd expect being a _Charm_project. 

Charm   

[Spotify 2.4.0: A Go Wrapper for the Spotify Web API](https://github.com/zmb3/spotify) — There are a variety of [examples](https://github.com/zmb3/spotify/tree/master/examples), but you can do all the obvious things like search for tracks, playlists, and control playing tracks. 

Zac Bergquist   

[Enmime 1.0: MIME Encoding and Decoding Package](https://github.com/jhillyerd/enmime) — Focused on generating and parsing MIME encoded emails. 

James Hillyerd   

_QUICK RELEASES:_ 

- [Chroma 2.9](https://github.com/alecthomas/chroma)
 ↳ Pure Go general purpose syntax highlighter.
- [Lingua 1.4](https://github.com/pemistahl/lingua-go)
 ↳ Natural language detection library.
- [sqlc 1.21](https://github.com/sqlc-dev/sqlc/releases/tag/v1.21.0)
 ↳ Generate type-safe code from SQL.
- [Benthos 4.21](https://github.com/benthosdev/benthos/releases/tag/v4.21.0)
 ↳ Fancy stream processing made operationally mundane.
- [OpenAPI Client and Server Code Generator 1.15](https://github.com/deepmap/oapi-codegen/releases/tag/v1.15.0)
 ↳ Generate boilerplate from OpenAPI 3 specs.
- [go-github 55.0](https://github.com/google/go-github)
 ↳ GitHub v3 API client library.
- [lemonsqueezy-go 1.0.3](https://github.com/NdoleStudio/lemonsqueezy-go)
 ↳ Go API client for the [Lemon Squeezy](https://www.lemonsqueezy.com/) SaaS platform.    

Jobs  

[Find a Job Through Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-golangweekly%29&utm_content=find-your-next-job) — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now. 
Hired           

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
