Quoting Jim Nielsen: To Make Software Is To Translate Human Intent Into Computational Precision

This is precisely why natural language isn’t a good fit for programming: it’s not very precise. As Gorman says, “Natural languages have not evolved to be precise enough and unambiguous enough” for making software. Code is materialized intent. The question is: whose?

The request ”let users sign in” has to be translated into constraints, validation, database tables, async flows, etc. You need pages and pages of the written word to translate that idea into some kind of functioning software. And if you don’t fill in those unspecified details, somebody else (cough AI cough) is just going to guess — and who wants their lives functioning on top of guessed intent?

This is exactly why vibe-coded software is shit when the only direction given is ”let users sign in”. In fact, I’d say most of my work when working with AI coding agents is doing this kind of translation, except that what I’m typing or what I’m dictating isn’t written in code. It’s written in pseudo code or plain English. And when it’s a sufficiently complicated thing, or I don’t quite know what I want yet, I’ll often resort to actually writing some example code.

copy / view as markdown