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

Plus RIP to AWS Lambda's Go runtime, a big TinyGo update, and an official introduction to 1.21's structured logging. |

#​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. 😁
__
Peter Cooper and the Cooperpress team

Together with  Ardan Labs

Go Weekly

On Backward Compatibility, Go 1.21, and.. Go 2? — If backwards compatibility sounds boring, “boring can be good,” says Russ, who has written about some of the “important work we shipped in Go 1.21 to keep Go boring” when it comes to ensuring your programs continue to compile in the face of changes to Go’s tooling. He also teases Go 2 before (spoiler alert) saying it either won't happen or.. it already did.

Russ Cox

Russ has remained prolific during our break and has also shared a proposal for iter, a new package for iterators, which relates to the 'range over function' feature proposal that's also currently in progress.

Structured Logging with slogGo 1.21 was the big news in our last issue and it introduced the log/slog package for structured logging where logs go beyond a mere line of text and have useful associated metadata. Jonathan Amsterdam presents a full introduction on the official Go blog.

Jonathan Amsterdam

Go! Experts at Your Service — 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

Go 1.21, All You Need to Know: A Visual Guide — A Miro-based whiteboard/mindmap-style representation of what Jan believes the most important things to know about Go 1.21 are. There are previous editions for Go 1.20 and 1.18 too.

Jan Stamer

RIP AWS Lambda's Go Runtime? — AWS is deprecating the go1.x runtime alongside the end-of-life of Amazon Linux 1 and folks with Go functions are encouraged to migrate to the provided.al2 base image. While this promises better performance and support, it also gives users a fair bit of work to do to migrate.

Mark Wolfe

Avoiding Pitfalls in Go“Every example I give here is something that I have personally experienced. These lessons were learned the hard way. Learn from my mistakes.”

Nick Tobey

Advanced Go Concurrency — We featured this a few years ago, but it’s become popular on social again. This article goes beyond the usual candidates (goroutines, using context and sync) and digs into x/sync and things like singleflight and errgroup. If you’ve not dug far into concurrency in Go, you should pick up a thing or two here.

André Eriksson

How to Develop a Great CLI with Go — Alex shares his insights from building half a dozen popular Go CLIs himself.

Alex Ellis (OpenFaaS)

Free Course: Temporal 101 with Go — Learn the essentials, then develop an app in this course that focuses on Workflows, Activities, and Temporal’s Go SDK.

Temporal Technologies sponsor

Writing a TOTP 2FA Client in Go — You can do it all with standard libaries.

Redowan Delowar

Limit Goroutines with Buffered Channels
Redowan Delowar

How to Propagate Context Without Cancellation
Wairagu Komu

🛠 Code & Tools

TinyGo 0.29.0: The Go Compiler for Small Places Gets Go 1.21 — The popular alternative LLVM-based Go compiler targeting microcontrollers and WebAssembly use cases has now added support for both Go 1.21 and the new GOOS=wasip1 option.

TinyGo

SQLedge: Replicate Postgres to SQLite on the Edge — An alpha/experimental Go-powered Postgres proxy that uses a local SQLite database for reads and forwards writes to an upstream Postgres server.

Zak Knill

Local Development Where the Infrastructure is Created Automatically — Encore automatically sets up local infrastructure on the fly, and provisions cloud infrastructure when you git push.

Encore sponsor

fp-go: IBM Working on a Functional Programming Library for Go — Presented as a ‘work in progress’ and inspired by TypeScript’s fp-ts, this effort aims to encourage the development and composition of small, side-effect free functions in Go too.

IBM

Jacobin JVM: A 'More than Minimal' JVM Written in Go — A novel Java Virtual Machine implementation built in Go that’s capable of running Java 17 classes.

Binstock, Uresk, Elkins, et al.

Soft Serve Now Supports Git LFSSoft Serve is a Go-powered, self-hostable Git server from the Charm folks.

Charm Team

Jobs

Find a Job Through Hired — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now.
Hired

  • Excelize 2.8
    ↳ Read/write Excel spreadsheet files.

  • Wazero 1.5
    ↳ Zero dependency WASM runtime for Go devs.

  • Toxiproxy 2.6
    ↳ TCP proxy to simulate choatic network conditions.

  • FerretDB 1.9
    ↳ MongoDB compatible database atop Postgres.

  • GoCV 0.34
    ↳ Package for computer vision using OpenCV 4+

  • Roaring 1.5
    ↳ Go version of the 'Roaring bitmap' data structure.

  • Fiber 2.49 – Express.js inspired web framework.

  • pdfcpu 0.5 – Go PDF processor.

n

Older messages

Go 1.21 released

Tuesday, August 8, 2023

Plus cross-platform sound from Go, a new dependency security tool, and we're off for a few weeks. | #​472 — August 8, 2023 Unsub | Web Version ⛱ I'm taking two weeks off and will be back on

The Go team's new project templating tool

Tuesday, August 1, 2023

Plus the Go survey is back, a 400 line Go git client, and Google Cloud Functions gets Go 1.21. | #​471 — August 1, 2023 Unsub | Web Version Together with Ardan Labs Go Weekly Experimenting with Project

The one where Go keeps getting better

Tuesday, July 25, 2023

Plus Go benchmarking pitfalls, a gentle intro to pointers, and finding vulnerable dependencies with govulncheck. | #​470 — July 25, 2023 Unsub | Web Version ✍️ It feels like there's a particularly

Russ Cox makes the case for coroutines

Tuesday, July 18, 2023

Plus Gorilla is back, IBM takes over Sarama, a Go powered TUI feed reader, and Go 1.21rc3. | #​469 — July 18, 2023 Unsub | Web Version Together with Ardan Labs Go Weekly A Rationale for Using

Go, meet Python. Python, meet Go.

Tuesday, July 11, 2023

Plus using fuzz testing in practice, working with eBPF from Go, and how it feels to be a solo gopher. | #​468 — July 11, 2023 Unsub | Web Version Together with Teleport logo Go Weekly Finding Bugs with

You Might Also Like

Sunday Digest | Featuring 'The World’s 20 Largest Economies, by GDP (PPP)' 📊

Sunday, December 22, 2024

Every visualization published this week, in one place. Dec 22, 2024 | View Online | Subscribe | VC+ | Download Our App Hello, welcome to your Sunday Digest. This week, we visualized public debt by

Android Weekly #654 🤖

Sunday, December 22, 2024

View in web browser 654 December 22nd, 2024 Articles & Tutorials Sponsored Solving ANRs with OpenTelemetry While OpenTelemetry is the new observability standard, it lacks official support for many

😸 Our interview with Amjad Masad

Sunday, December 22, 2024

Welcome back, builders Product Hunt Sunday, Dec 22 The Roundup This newsletter was brought to you by AssemblyAI Welcome back, builders Happy Sunday! We've got a special edition of the Roundup this

C#537 Automating Santa's Workshop with NServiceBus

Sunday, December 22, 2024

Using event-driven architecture for effective gift delivery 🎄🎁 ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌

The Race for AI Reasoning is Challenging our Imagination

Sunday, December 22, 2024

New reasoning models from Google and OpenAI ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

ScienceDaily/Minimalist lamp/Avocado tip

Sunday, December 22, 2024

Recomendo - issue #442 ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Laravel VS Code Extension, Laravel 11.36, Wirechat, and more! - №544

Sunday, December 22, 2024

Your Laravel week in review ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Kotlin Weekly #438

Sunday, December 22, 2024

ISSUE #438 22nd of December 2024 Announcements klibs.io JetBrains has introduced the alpha version of klibs.io – a web service that speeds up and simplifies discovering KMP libraries that best meet

Weekend Reading — Happy "That's a January Problem" week

Saturday, December 21, 2024

Can Christmas season start a little earlier this year Tech Stuff Ramsey Nasser fuck it happened i am in a situation where i do actually need to reverse a linked list Atuin I just learned about Atuin

Daily Coding Problem: Problem #1644 [Easy]

Saturday, December 21, 2024

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by IBM. Given an integer, find the next permutation of it in absolute order. For example,