Marc Brooker on why natural language will shape programming's future
Marc Brooker, an AWS engineer with a background in databases and serverless systems, lays out a practical case for natural language as the core of future programming. The argument reframes modern software work as specification-first: implementation details are increasingly abstracted away, while conversations about intent drive development. That shift makes natural language not a flaw to be eliminated but a practical interface to systems.
The ambiguity objection — and why it isn't fatal
Natural language is inherently ambiguous, and historical critiques from figures like Lamport and Dijkstra remain relevant. Yet Brooker points out that most software already begins life as fuzzy, conversational requirements. Teams routinely resolve ambiguity through context, experience, and iterative clarification. In practice, those feedback loops are already central to how software is built.
The conversational loop as the programming model
Brooker highlights workflows such as vibe coding and spec-driven development as formalizations of the same pattern: an iterative dialogue that refines a specification through repeated interactions. LLMs expand the loop by participating directly in conversations about requirements, tests, and examples. This loop — not a single-shot translation from prose to code — is the crucial element in moving from ambiguity to actionable specification.
Where formal tools still matter
Precision remains essential for safety-critical systems, compliance, and security. Brooker argues that symbolic tools (Rust, TLA+, SMT-style formalisms) stay in the toolbox and should be invoked when the loop uncovers risks or hard correctness properties. These tools are complements rather than competitors to natural-language-centered workflows.
A neurosymbolic middle path
A promising direction is neurosymbolic systems: combining LLM-driven natural language understanding with internal symbolic checks, automated test generation, and explicit human review of formalized policies. That hybrid approach can surface inconsistencies, prompt clarification, and produce verifiable representations when necessary.
The piece presents the future of programming as an extension of long-standing practice: a dialogue that accumulates context, occasionally descending into formal methods when precision demands it.
Read the original essay for the full discussion and examples: On the success of ‘natural language programming’ — Marc Brooker