---
title: "Go's backwards compatibility discussion"
publication: "Go Weekly"
issue: 428
published_at: "2022-09-16"
canonical_url: "https://golangweekly.com/issues/428"
---

Plus Go on Google Colab, a new (paid) Go editor, and a Go powered game hits Steam. |        

#​428 — September 16, 2022 

[Unsubscribe](https://golangweekly.com/leave/*|UID|*)|[Read on the Web](https://golangweekly.com/issues/428)   

The _Go Weekly_ Newsletter 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/dpq65d91qwpktxqeappa.jpg)](https://github.com/golang/go/discussions/55090)  

[Let's Discuss Backward Compatibility in Go](https://github.com/golang/go/discussions/55090) — When Russ Cox starts a discussion, we listen. Rather than focus on a _new_ feature, he reflects on Go 1’s _compatibility promise_ (that you’ll be able to compile older Go programs on future versions) and areas where it fails or falls short. It's dry, but important stuff to understand, particularly if you need to maintain Go projects over time. 

Russ Cox et al.   

[Concurrency Isn’t _Always_ Faster in Go](https://teivah.medium.com/concurrency-isnt-always-faster-in-go-de325168907c) — The author of _100 Go Mistakes and How to Avoid Them_ digs into mistake 56 (of the 100!) with a look at the assumption that doing something concurrently _must_ be faster than sequentially. Unsurprisingly, _it’s complicated.._ 

Teiva Harsanyi   [![\](https://copm.s3.amazonaws.com/3b4685ad.png)](https://buttercms.com/hugo-cms/?utm_source=goweekly&utm_medium=email&utm_campaign=numberone) 

[🧈 ButterCMS Melts into Your Go + Hugo App. #1 Rated Headless CMS](https://buttercms.com/hugo-cms/?utm_source=goweekly&utm_medium=email&utm_campaign=numberone) — ButterCMS is your content backend. Enable your marketing team to update website + app content without needing you. Try the #1 rated Headless CMS for Go + Hugo today. Free for 30 days. 

🧈 ButterCMS sponsor   

∞ [A Google Colab Notebook for Running Go Code?](https://colab.research.google.com/drive/1RjCsLMz71ubGCGitViav7eW9vVIeTYEv?usp=sharing) — Google's Colab is a fantastic notebook environment for working with _Python_ and this approach (which does involve reloading the notebook, alas) lets you write Go-powered cells too. _Note: This links directly to a Colab notebook._ 

Bio Risk   

[Why a Google Cloud Director of Engineering Loves Go](https://cloud.google.com/blog/products/application-modernization/why-david-yach-loves-go) — If you’re not going to cheer for the home team, who is? Nonetheless, David Yach picked up Go years ago at a network management startup and is now one of its biggest fans. We’re also the home _crowd,_ but this is a good piece to pass to any reluctant CXO types you encounter.. 

David Yach (Google)   

[Planning Go 1.20 Cryptography Work](https://words.filippo.io/dispatches/go1-20/) — Filippo led cryptography and security efforts on the Go team till earlier this year, but despite leaving Google, his efforts continue. Future plans include landing the `crypto/ecdh` package, moving `math/big` out of the security perimeter, and work on `crypto/tls`. 

Filippo Valsorda   

[Reducing Graph Complexity with Transitive Reduction](https://dominikbraun.io/blog/graphs/reducing-graph-complexity-using-go-and-transitive-reduction/) — Adding numerous edges to a DAG can introduce unnecessary complexity. However, such graphs can be simplified using a technique called _transitive reduction_. (If you’re not into math, don’t fear - this post is quite easy to follow.) 

Dominik Braun   

- 🎮[Dr. Kobushi's Labyrinthine Laboratory](https://store.steampowered.com/app/1829450/Dr_Kobushis_Labyrinthine_Laboratory/)
 ↳ It's link to a puzzle game on Steam, but it was written in Go using Ebitengine.
- [CodePerfect](https://codeperfect95.com/) – not to be confused with _WordPerfect_ – is a curiously named attempt at a new (paid) IDE for Go aiming to get the best of both Vim and JetBrains-esque approaches.
- ▶️ At GopherCon Europe 2022, Ron Evans spent several minutes [giving an update on TinyGo](https://www.youtube.com/watch?v=Upbp7dQi-9U) while wearing a rather unusual hat.
- [Querying a GraphQL Service with Go](https://brianmorrison.me/blog/querying-a-graphql-service-with-go)
 ↳ [This library](https://github.com/machinebox/graphql) makes it easy.
- [Building Serverless Go Apps with Azure Functions Custom Handlers](https://techcommunity.microsoft.com/t5/apps-on-azure-blog/building-serverless-go-applications-with-azure-functions-custom/ba-p/3623617)
- [A Plugin Architecture by way of Go Interface Extension](https://www.dolthub.com/blog/2022-09-12-golang-interface-extension/)
- [Adding a Bubble Tea Interface to a CLI App](https://blog.customct.com/adding-a-bubbletea-cli-interface)  

🛠 Code & Tools  

[Cloud Spanner’s Go `database/sql` Driver Now GA](https://cloud.google.com/blog/topics/developers-practitioners/golangs-databasesql-driver-support-cloud-spanner-now-generally-available) — [Cloud Spanner](https://cloud.google.com/spanner) is a hugely scalable (“unlimited”, so says Google) managed relational database and here’s a Go-friendly way to work with it. 

Google Cloud   

[SeaweedFS: A Scalable Distributed Filesystem](https://github.com/seaweedfs/seaweedfs) — Inspired by Facebook’s [Haystack](https://www.usenix.org/legacy/event/osdi10/tech/full_papers/Beaver.pdf) and [f4: ‘Warm BLOB’](https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-muralidhar.pdf) papers, this is a distributed object store with a lot of desirable qualities. 

SeaweedFS   

[Don’t Let Your Issue Tracker Be a Four-Letter Word. Use Shortcut](https://shortcut.com/?utm_source=cooperGO&utm_medium=spon_nl&utm_campaign=prospecting&utm_content=fourletter) 

Shortcut (formerly Clubhouse.io) sponsor   

[dblab: Interactive Client for Postgres, MySQL, and SQLite3](https://github.com/danvergara/dblab) — A cross-platform (yes, including Windows) TUI-style app for working with various database systems. Certainly looks rather different to the standard CLI clients! 

Daniel Omar Vergara Pérez   

[go-set: Sets Implemented with Generics](https://github.com/micnncim/go-set) — [Example usage.](https://github.com/micnncim/go-set/blob/main/example_test.go) Still considers itself an ‘experimental’ package, however. 

micnncim   

[Jackal: An XMPP Server Written in Go](https://github.com/ortuman/jackal) — We link to this every few years and it’s continuing to see updates including [this week](https://github.com/ortuman/jackal/releases/tag/v0.62.0) with support for [XEP-0313: Message Archive Management](https://xmpp.org/extensions/xep-0313.html). 

Miguel Ángel Ortuño   

[go-esi: ESI (Edge-Side-Include) Implementation in Go](https://github.com/darkweak/go-esi) — “ESI” provides a mechanism for including fragments of other HTML documents into Web pages at the edge/caching level. And if this smells a little bit like SSI to you, you might be as old as us 😁 

darkweak   

[NSet: Fast, Memory Efficient Set Implementation for Unsigned Integers](https://github.com/bloeys/nset) 
Omar Mahdi   

**⚡️ QUICK RELEASES:** 

- [Chroma 2.3](https://github.com/alecthomas/chroma)
 ↳ General purpose syntax highlighter in pure Go.
- [Toxiproxy 2.5](https://github.com/Shopify/toxiproxy)
 ↳ TCP proxy that simulates chaotic network conditions.
- [Liftbridge 1.9](https://github.com/liftbridge-io/liftbridge)
 ↳ Lightweight, fault-tolerant 'Kafka-lite' message streams.
- [Bud 0.2.5](https://github.com/livebud/bud)
 ↳ Full-stack web framework for Go.
- [Buf 1.8](https://github.com/bufbuild/buf)
 ↳ A fresh way to work with Protocol Buffers.     

Jobs  

[Senior Golang Software Engineer](https://grnh.se/723933ff1us) — Seeking Sr Software Engineers to build innovative technology that connects learners with experts in any subject, anytime, anywhere. 
Varsity Tutors (Nerdy)   

[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) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers. 
Hired           

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

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

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