Recent submissions

Comment · 3 months ago
I'm the author, this is my attempt at laughing at my own code.
Comment · 7 months ago
Can’t wait to play with it. Great design!
Comment · 7 months ago
Author here. Ask me any questions
Comment · 7 months ago
Comment · 7 months ago
The colored functions point is fair, I was imprecise. My real argument is about the human cost of the compiler fighting AI-generated code, not about async semantics.
Comment · 7 months ago
Yes, this is the serious (?) front end to a satirical website.
Comment · 7 months ago
Fair comment. In my production code I always separate out the css and embed it in the go binary as files that can be cached. Having it in embedded into the page was really useful to iterate behind cloudflare and not worry about css caching but is a terrible practice.
Comment · 7 months ago
Last night I built a website from scratch. Not a landing page. A full blog with three-domain routing, animated video covers, an audio player with playlists, dark mode, RSS feeds, social cards, and a sticky sidebar with a lightbox. Seven commits. Zero test failures. One binary.

The site you've read the article on. Built in one session. In Go.

I work with an AI that writes most of the code. The question everyone asks is which language to vibe in. Python is fast to start. Rust is correct by construction. Go is boring.

I choose boring. Here's why.

Comment · 7 months ago
Software Engineering is the discipline that, in 1968, looked at the smoldering wreckage of every software project ever attempted and concluded that what it really needed was not better practices, better tools, or better understanding, but a better name. Specifically, someone else’s name. Specifically, the name of people who build bridges.

It has spent the subsequent fifty-eight years proving the metaphor wrong in every measurable way, while simultaneously insisting on keeping it....

Comment · 7 months ago
I've been building AI applications in Go since August 2024 — before "vibe coding" had a name. After 18 months of AI-assisted development on a Fortune 100 project, the argument for Go isn't performance or deployment anymore. It's the compiler.

When the machine writes 90% of the code, Go gives you five layers between the AI and production: compiler, type system, explicit errors, enforced simplicity, and the human. JavaScript gives you one: the human. And good luck.

The machine proposed a wrapper type last Tuesday. `go build` rejected it on line 47. I said five words: "why do we keep both around?" The wrapper died. In JavaScript, it would have compiled (nothing compiles in JavaScript), passed all tests, shipped to production, and coexisted with the original type for six months until someone proposed a `UnifiedStoreInterface` to bridge the gap.

TypeScript helps — but it's a type system that asks permission. `// @ts-ignore` exists. `strict: false` exists. `any` exists. Go has one mode. There is no `go build --please-actually-check-the-types`.

The machine can generate complexity faster than it can recognise it's unnecessary. Go is the language where the human can still recognise it.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton