No Silver Bullet
Fundamentally, programming exists so that we can be precise in our descriptions of what a computer should do.
The idea that AI prompting might replace classical programming assumes that precision is no longer required—that AI somehow always “knows” what we want. This is hard to believe, since I often don’t even know what I want until I write it down in a program!
Prompting (in English) is simply a less precise, higher-level programming language with a non-deterministic output. It works when you don’t need something too specific. But it’s hard to believe that AI will get all the details right—especially when those details rarely have a single correct answer, and instead present difficult trade-offs.
Frederick Brooks puts this wonderfully in his essay No Silver Bullet where he differentiates accidental complexity from essential complexity. He argues that tooling has done a great job at reducing accidental complexity and hence lowering the barriers to producing software, but that essential complexity cannot be reduced, and has to do with the inherent properties of human nature and culture.
Last edited March 24, 2025