May 25, 2026

Compile feelings, not just code

Show HN: Write your BPF programs in Go, not C

Go fans are thrilled, skeptics are asking why not just use the real thing

TLDR: gobee lets developers write a slice of Linux kernel code in Go instead of C, aiming to keep more of a project in one language. The community reaction was peak internet: some loved the convenience, while others asked why anyone wouldn’t just use the original language—or Rust.

A new project called gobee just walked into one of the internet’s most opinionated rooms and said, essentially, “What if you could write this scary low-level Linux stuff in Go instead of C?” That alone was enough to summon a full-blown comment-section identity crisis. The tool takes a limited version of Go, converts it into the code Linux expects, and then helps the rest of your Go app talk to it more cleanly. In plain English: it tries to spare Go developers from having to switch languages for one especially painful part of the job.

But the real entertainment came from the crowd. One camp immediately went full old-school: why not just write it in the “native” language and stop being cute? Another camp said this particular corner of programming feels more like Rust territory, not Go’s. And then there was the delightfully honest drive-by question, “What is BPF?”—which honestly may have been the most relatable comment in the thread. Others piled on with the practical gripes: if this Linux feature still behaves like C under the hood, still uses C-style data, and still strips away most of Go’s beloved features, are you really escaping anything?

The funniest energy in the thread was less “this is bad” and more “I need everyone to explain why this exists before I believe in it.” Even the more supportive comments sounded like a detective board covered in string, wondering whether a smaller Go compiler project might have done this another way. Classic Hacker News: half impressed, half suspicious, fully ready to debate programming languages like sports teams.

Key Points

  • gobee lets developers write eBPF programs in a strict subset of Go and transpiles them into BPF C.
  • The tool generates typed Go userspace bindings, a source map for verifier error mapping, and load-time kernel gating.
  • The article provides a tracepoint example that captures `execve` events and sends them to userspace via a ring buffer.
  • gobee is positioned as a Go-centric alternative to C-based workflows and is compared with Aya, bpftrace, and BCC.
  • The current support matrix includes 8 eBPF program types, 19 map types, about 200 typed helper wrappers, and CO-RE support tested on Linux 6.x.

Hottest takes

"why wouldn’t I write in the native language?" — shirleyquirk
"BPF seems like Rust's place to shine" — sparrc
"What is BPF?" — a1o
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.