#​460 — May 16, 2023

Unsub  |  Web Version

Together with  Ardan Labs

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 is now folks' biggest pain point.
  • Keeping dependencies up to date (if maintaining a module) is a challenge.
  • VS Code remains the editor of choice, with GoLand a solid second.
  • The majority of Go devs work on either a Mac or Linux machine (tied in terms of popularity) but Windows is notably popular with newer devs.

Alice Merrick / Go Team

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

A Proposal for Less Error-Prone Loop Variable Scoping — After last week’s attempt to win us over with a new file extension for Go programs, Russ is back with a more serious proposal based on a long-standing desire to change the semantics around the scope of loop variables (but only in apps declaring a modern Go version in go.mod, so as not to break older programs).

Russ Cox

▶  Google's Gophers on Building More Secure Apps — Supply chain security is a pressing topic right now, so it’s neat to see folks on the Go team at Google (plus a member of the deps.dev team) tackle it head on both explaining the general problems and how Go and its ecosystem provide numerous tools and approaches to mitigating the problems. (18 minutes.)

Cameron Balahan and Julie Qiu


How to Build a Serverless Discord Bot with OpenFaaS — A serverless chat bot? Don’t bots need to be long running processes? No, it’s possible for them to be stateless and triggered by events, and Alex shows us how to rig one up with Go atop the OpenFaaS platform (itself written in Go).

Alex Ellis

Producing a Go Scanner in 1,219 Bytes of Code — This is certainly quite the set of regexes..

Modern C

▶  Video: Securely Deploy K8s Clusters with Machine ID and GitHub Actions — Learn about security best practices for assigning individual identities to humans & worker nodes without static credentials.

Teleport | goteleport.com sponsor

▶  A 9-Hour Go Course for Beginners — This epic, practical and project oriented video probably isn’t aimed at most Go Weekly readers, but you might find it useful as a refresher or to pass on to someone else in your team.

Lane Wagner

Stepping up Your Go App Testing Game with TestifyTestify is a popular suite of packages providing added structure, assertions, mocking, and similar niceties to testing in Go.

Ukeje Chukwuemeriwo

🛠 Code & Tools

Gobot 2.0: A Framework for Robot, Drone and IoT Development — Before focusing on TinyGo, Ron Evans was best known for Gobot, a framework for using Go on robots and similar physical computing projects. Thomas Kohler now seems to be the main maintainer and v2.0 updates all sorts of things.

The Hybrid Group

BARF 1.0: A Framework for Building JSON-Based Web APIs — Not the most appealing name, but it stands for “Basically A Remarkable Framework” here 😆 It’s designed for building simple JSON-based APIs atop either REST or GraphQL. This week’s 1.0 release is the first to be “basically remarkable,” claims the author, which justifies the name I guess..

Perfection Loveday

A Developer’s Guide to Getting Started with Temporal — Use this guide to see how Temporal’s open source delivers durable execution for your services and applications.

Temporal Technologies sponsor

wzprof: pprof-Based Profiling for Wazero — Collect CPU and memory profiles during the execution of WebAssembly modules through wazero.

Stealth Rocket

There's also a fantastic blog post to go along with this project that digs deeper into how it works.

dinero.go: A Port of dinero.js to Go — Create, calculate, and format monetary amounts.

Dustin J Silk

  • Faktory 1.7
    ↳ Language-agnostic persistent background job server

  • Vale 2.26
    ↳ A syntax-aware linter for prose.

  • Mage 1.15
    ↳ make/rake-like tool but with Go.

  • etree 1.2
    ↳ Parse and generate XML as element trees.


Game of Realms Contributor in Gno.land — Want to do something different? Help build Gno.land, the next-generation smart contract platform for web3. We hire contributors.

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.

🧑‍💻 Got a job listing to share? Here's how.

🤔 An a-maze-ing Go program

Amaze: A Program to Create, Solve and Draw Mazes — This is a bit of fun. It’s a Go program that can create, solve and draw mazes either in the terminal or as 2D or 3D graphics (powered by G3N and OpenGL). I like how the author also uses it as a way to promote his clap CLI argument parsing library :-)

Fred X