---
title: "The second beta of Go 1.18"
publication: "Go Weekly"
issue: 398
published_at: "2022-02-04"
canonical_url: "https://golangweekly.com/issues/398"
---

Plus comparing Go version performance, and digging deep into Go's GC. |        

#​398 — February 4, 2022 

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

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/q2u6uiulusyxa9sxoxsu.jpg)](https://benhoyt.com/writings/go-version-performance/)  

[Go Performance from Go 1.2 to 1.18](https://benhoyt.com/writings/go-version-performance/) — The creator of [GoAWK](https://github.com/benhoyt/goawk), an AWK interpreter written in Go, decided to see how compiling GoAWK with numerous versions of Go would affect performance. In short, unless you’re using Go 1.6 (now six years old!) or earlier, there’s not much to worry about. 

Ben Hoyt   

[Go 1.18 Beta 2 Released](https://go.dev/blog/go1.18beta2) — 1.18 is the release on everyone’s mind lately and it’s one step closer with this beta. The first beta (which now has the honor of being the most popular Go beta ever) helped the team iron out some bugs in the new support for generics, and you’re encouraged to put beta 2 through its paces as well. Note that `gopls` and the VS Code Go extension now also support generics. 

Jeremy Faller and Steve Francia   [![\](https://copm.s3.amazonaws.com/9784d1e7.png)](https://shortcut.com/?utm_source=cooperGO&utm_medium=spon_nl&utm_campaign=prospecting&utm_content=pm) 

[Project Management Has Never Been Easier](https://shortcut.com/?utm_source=cooperGO&utm_medium=spon_nl&utm_campaign=prospecting&utm_content=pm) — Whether you're a startup that iterates quickly by giving engineers a free pallet of Red Bull, or a large org that has strict ship dates to hit, Shortcut is the ideal solution for task management, bug tracking, iteration planning, and reporting. 

Shortcut (formerly Clubhouse.io) sponsor   

[Dumpster Diving the Go Garbage Collector](https://blog.px.dev/go-garbage-collector/) — Natalie uses eBPF uprobes (used to instrument userspace functions) to collect data on marks, sweeps, and other metrics and gains a better understanding of the GC’s behavior. Plenty to learn here. 

Natalie Serrino    

Jobs  

[Help Us Build and Shape a Tool That Thousands of Developers Use Everyday](https://buildkite.com/careers/go-engineer) — We are a differently shaped company that values work-life balance and supports staff to work the ways that make sense for them. 
Buildkite   

[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      

[Optimizing GoAWK with a Bytecode Compiler and Virtual Machine](https://benhoyt.com/writings/goawk-compiler-vm/) — If you didn’t pick it up from the title, this is a very technical post that digs through compiler and VM details showing how GoAWK (already mentioned above) gained some performance boosts using data-driven techniques. 

Ben Hoyt   

[Creating a Toy DNS Resolver with Go](https://jvns.ca/blog/2022/02/01/a-dns-resolver-in-80-lines-of-go/) — Julia, whose explanations are always great, describes what DNS resolvers do by writing a small (80 lines) Go program. 

Julia Evans   

[Enjoy Building Scalable Infrastructure in Go? Stream Is Hiring](https://angel.co/company/stream/jobs/241159-backend-software-engineer-go) 

Stream sponsor   

[Creating a Quick GUI using Fyne](https://convey.earth/conversation?id=48) — [Fyne](https://fyne.io/) is a toolkit for creating GUI apps and it’s easy to whip together a GUI frontend for the command line app or Go library of your choice. 

Stuart Scott   

[TLS Validation: Implementing OCSP and CRL Verifiers in Go](https://www.cossacklabs.com/blog/tls-validation-implementing-ocsp-and-crl-in-go/) 
Anatolii Lishchynskyi (Cossack Labs)  

🛠 Code & Tools  

[Wish: Makes Building SSH-Based Apps in Go Easier](https://github.com/charmbracelet/wish) — If you want to build a system that users can `ssh` into, Wish brings together a variety of niceties to doing it with Go. Check out [this basic BubbleTea-based example](https://github.com/charmbracelet/wish/blob/main/examples/bubbletea/main.go), for instance. 

Charm   

[shortuuid: Generator Library for Concise, Unambiguous and URL-Safe UUIDs](https://github.com/lithammer/shortuuid) — If you want short, non-sequential user-facing IDs. 

Peter Lithammer   

[Imagor: A Docker-Ready Image Processing Server](https://github.com/cshum/imagor) — If you want an image server that can manipulate images on the fly (a la Cloudinary, say) this is worth a look. like Uses `libvips` for performance. 

Adrian Shum   

[Coral: A Cobra Fork with Most Features, But Only 4 Dependencies](https://github.com/muesli/coral) — [Cobra](https://github.com/spf13/cobra) is a popular library for creating CLI apps in Go, but what if you’re willing to sacrifice a few features in return for a much smaller dependency tree? 

Christian Muehlhaeuser   

[rqlite 7.2.0: A Distributed Relational Database Built on SQLite](https://github.com/rqlite/rqlite) — 7.2.0 adds new DNS-based auto-clustering functionality. 

rqlite   

[Dominantcolor: Find the Dominant Color in Images](https://github.com/cenkalti/dominantcolor) 
Cenk Altı         

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

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

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