Hacker News with Generative AI: Go

Go 1.24 Interactive Tour (antonz.org)
Go 1.24 is scheduled for release in February, so it's a good time to explore what's new. The official release notes are pretty dry, so I prepared an interactive version with lots of examples showing what has changed and what the new behavior is.
Build a Database in 3000 Lines with 0 Dependencies (build-your-own.org)
I’ve built a small database in 3000 lines from scratch in Go to learn the core ideas of databases. It’s not that complicated if you approach it in a certain way.
Go is a well designed language, actually (mattjhall.co.uk)
In many ways 2009 decided my future career. I was thirteen and had just scored my first goal in a competitive football match - a lovely one-two with the winger finished by a powerful strike into the top left corner. Sadly the talent scouts were missing that day. Whilst I was dreaming of Wembley, Go was announced to the world.
Pdfcpu – A PDF Processor (pdfcpu.io)
A PDF processor written in Go.
TiDB – cloud-native, distributed SQL database written in Go (github.com/pingcap)
TiDB (/’taɪdiːbi:/, "Ti" stands for Titanium) is an open-source, cloud-native, distributed SQL database designed for high availability, horizontal and vertical scalability, strong consistency, and high performance.
Don't Clobber the Frame Pointer (nsrip.com)
Recently I diagnosed and fixed two frame pointer unwinding crashes in Go.
Go Upgrade Checklist (hakann.substack.com)
Upgrading your service to a new golang major release is supposed to be a painless process thanks to the Go 1 promise of compatibility. However, there can always be small issues around security updates, packages, tools, linters, etc. If you have an uncritical standalone service, it is probably best to upgrade and see if everything works as expected.
Zasper: A Modern and Efficient Alternative to JupyterLab, Built in Go (github.com/zasper-io)
Zasper is an IDE designed from the ground up to support massive concurrency. It provides a minimal memory footprint, exceptional speed, and the ability to handle numerous concurrent connections.
Mr Smith: Framework for creating scaffolds for any existing programming language (github.com/mr-smith-org)
Mr. Smith is a powerful framework designed to generate scaffolds for any programming language, based on Go templates.
Adversarial policies beat superhuman Go AIs (2023) (arxiv.org)
We attack the state-of-the-art Go-playing AI system KataGo by training adversarial policies against it, achieving a >97% win rate against KataGo running at superhuman settings.
Writing and testing a paginated API iterator in Go (thibaut-rousseau.com)
Go 1.23, amongst other features, brought Iterators to the standard library.
I think Go union type proposals should start with their objectives (utoronto.ca)
At this point I've skimmed a number of relatively serious union type proposals for Go (which is to say, people who were serious enough to write something substantial in the Go issue tracker). One of the feelings I've wound up with as a result of this is that any such union type proposal should probably start out by describing what its objectives are, not what its proposed syntax is.
trofaf – super simple live static blog generator in Go (github.com/mna)
trofaf is a super-simple live static blog engine.
Go's Weird Little Iterators (mcyoung.xyz)
A second post on Go silliness (Miguel, aren’t you a C++ programmer?): in 1.23, Go finally added custom iterators. Now, back when I was at Google and involved in the Go compiler as “the annoying Rust guy who gets lunch with us”, there were proposals suggesting adding something like this, implemented as either an interface or a func:
Show HN: I built an open-source data pipeline tool in Go (github.com/bruin-data)
Bruin is a data pipeline tool that brings together data ingestion, data transformation with SQL & Python, and data quality into a single framework.
Go Protobuf: The New Opaque API (go.dev)
We created the new Opaque API to uncouple the Generated Code API from the underlying in-memory representation.
Ask HN: Fluent in go and Rust? Which one do you prefer and why? (ycombinator.com)
You should have done at least a full project in both, a bit more than just scratching the surface.
Go should sometimes be a no-go (brainbaking.com)
As I will be switching clients next year, I will also be switching programming languages, from Go back to Java. Truth to be told, I’m relieved because of it. The biggest challenges faced were most definitely not related to the choice of programming languages, but after cursing and fighting with Go’s mechanics and philosophy for years, I’m ready to throw in the towel. Depending on the type of software you’re developing, that is. Sometimes, Go should be a No-Go.
Building HTML in Go (templ.guide)
Create components that render fragments of HTML and compose them to create screens, pages, documents, or apps.
Union types ('enum types') would be complicated in Go (utoronto.ca)
Every so often, people wish that Go had enough features to build some equivalent of Rust's Result type or Option type, often so that Go programmers could have more ergonomic error handling.
Dependency management fatigue, or why I ditched React for Go+HTMX+Templ (erodriguez.de)
After getting to work on some personal projects using Go+HTMX+Templ this year, I have decided to give up on using React on any personal projects.
Good union types in Go would probably need types without a zero value (utoronto.ca)
One of the classical big reason to want union types in Go is so that one can implement the general pattern of an option type, in order to force people to deal explicitly with null values.
Run a Simple Go Web Service on NixOS (mtlynch.io)
I have a few toy utility apps that I run 24/7 on cloud infrastructure. One example is PicoShare, a simple web app that makes it easy for me to share files with friends and teammates.
Static IPs for Serverless Containers (modal.com)
At Modal, we built a high-availability, Go-based VPN proxy called vprox.
Kth: High-Performance Selection Algorithms for Go (github.com/tsenart)
kth provides high-performance selection algorithms that find the k-th smallest element without sorting the entire dataset. It's especially useful for operations like finding top-N elements or medians in large datasets.
Weak pointers in Go: why they matter now (victoriametrics.com)
Weak Pointers in Go: Why They Matter Now
Glojure: Clojure interpreter hosted on Go, with extensible interop support (github.com/glojurelang)
Glojure is an interpreter for Clojure, hosted on Go. Glojure provides easy access to Go libraries, similar to how Clojure provides easy access to Java frameworks.
Show HN: I Made a Ultra-Low Latency IP Geolocation API in Go (ipflare.io)
Integrate our developer-friendly IP lookup API for precise location data and 99.9% uptime reliability.
Golang Weekly: Issue 533 (golangweekly.com)
GoMLX: ML in Go without Python — Eli recently wrote about Go’s suitability as a glue language for calling out to third party machine learning services and Python ‘sidecars’, but could you just do the heavy lifting from Go itself? GoMLX provides one option.
Go and Java: Rethinking Type Safety for the Pragmatic Age (rohan.ga)
I want to explore where mainstream programming languages are headed, using Java and Go as my primary subjects.