#​531 — November 12, 2024

Unsub  |  Web Version

Together with  Frontend Masters logo

Go Weekly

Happy Birthday, Go! Go Turns 15 — Grab a slice of cake, Go has celebrated its latest anniversary. Austin reflects on what Go’s latest year has brought to the language and what the ongoing priorities for the core team are.

Austin Clements

Proposal: Add Region-Based Memory Management to Go — If you have a long memory you might recall an indefinitely stalled proposal for adding memory arenas to Go. This new proposal comes up with a differently scoped alternative, based around regions, and has attracted a lot of comments both in support of and against the idea.

Michael Knyszek

Polyglot Programming: TypeScript, Go, & Rust — A mind-bending tutorial journey about programming side-by-side in these three languages. This detailed video course shares how to get the most out of this multi-language approach, specifically by implementing a fully-unit tested CLI app and comparing the differences.

Frontend Masters sponsor

👀 wasmVision: A Way to Get Go-ing with Computer Vision — Fresh from the genius behind TinyGo and GoCV comes a high-performance computer vision processing engine you can customize and extend with WebAssembly (which you can generate with TinyGo – or Rust or C, if you're so inclined).

The Hybrid Group

fmt.Sprintf vs String Concat — While code using fmt.Sprintf might look better-structured, simple string concatenation (+) proves to be somewhat faster. Why? Max digs into how fmt.Sprintf works under the hood.

Max Hoffman

IN BRIEF:

  • Go 1.23.3 has been released – a very minor bugfix release. Fingers crossed we also get the decidedly euarithmous Go 1.23.4 next.

  • Matt Boyle has teamed up with JetBrains to offer a free, online Mastering Go with GoLand' course. If you complete it, you even get a year's license, apparently.

  • A mere tidbit from Julia Evans but if you haven't tried Go's cross-compiling support you might realize just how easy it is.

Go Runtime Finalizer and Keep Alive — A look into Go’s runtime.SetFinalizer and runtime.KeepAlive APIs, two advanced features that have some interesting quirks and should be used cautiously. Finalizers are notoriously problematic (and may even be deprecated one day) while KeepAlive is easier to grok but will stop objects from being collected.

Phuong Le (VictoriaMetrics)

Creating a 'Brainrot' Language Server in Go — So-called ‘brainrot’ is a mishmash of next generation slang and memes. Follow along with this tutorial as the rizzler Jitesh creates a bussin' basic LSP server – no cap. Perhaps you can put the lessons learnt to more productive use? 😅

Jitesh Kumar Sahoo

🤞 And let's hope that's the first and last time we use Gen Alpha slang here..

Machine Learning in Go with a Python Sidecar — While Python currently holds the ML crown when it comes to the diversity of projects and examples, Go is a great ‘glue’ language for working with ML and LLMs and tying things together, even if it involves talking to Python-based projects.

Eli Bendersky

🛠 Code & Tools

🕒 When 1.1: Natural Language Date/Time Parser — A very long standing, and useful, library. The idea is simple: given a string like “tonight at 11:10 pm” or “next wednesday at 4:20 a.m”, you get the date/time you expect. Has rules for English, Portuguese, Chinese, Russian, and Dutch out of the box.

Oleg Lebedev

html-to-markdown 2.1: Convert HTML to Markdown — Actually parses HTML rather than just using regexes so can handle a lot of interesting edge cases. v2 is a total rewrite and boasts improved accuracy. It can be used both as a CLI tool or Go library. GitHub repo.

Johannes Kaufmann

Reduce Your Apache Kafka Costs by 80+% — Kafka with no local disks or interzone fees, zero ops auto-scaling and in your cloud with no cross-account access.

WarpStream sponsor

Yokai: A Modular, Observable Go Framework for Backend Apps — A modular framework for production-grade Go backends that handles observability, configuration, and dependency wiring out of the box, meaning less infrastructure boilerplate for you to write.

Ankorstore

Miniflux 2.2.3: Minimalist and Opinionated Feed Reader — So minimalist that no ORM or framework is used (just Postgres) and only the most essential JavaScript. GitHub repo.

Frédéric Guillot

📰 Classifieds

10x cheaper (and faster!) GitHub Actions with runs-on.com. Easily self-hosted on AWS. Perfect alternative to ARC or home-made solutions.


Legacy permissions systems can’t keep up with AI. Meet SpiceDB, the modern authorization system inspired by Zanzibar, in Go and Open Source.

  • 🧋 Bubble Tea 1.2 – A popular Elm-inspired functional and stateful way to build terminal apps. Now with much faster rendering.

  • k6 0.55 – Modern Go + JavaScript-powered load testing tool. (Homepage.)

  • Task 3.40 – Imagine if make were reimplemented in Go. (Homepage.)

  • BadgerDB 4.4 – Embeddable, fast pure-Go key-value DB.

  • gRPC-Go 1.68 – Go implementation of gRPC for HTTP/2 based RPC.

  • errorx 1.2 – Comprehensive error handling library.