Conversation: LLMs and the what/how loop
Summary
This three-way conversation between Unmesh Joshi, Rebecca Parsons, and Martin Fowler explores how programming is fundamentally about mapping domain concepts ('what') onto computational models ('how') through a continuous feedback loop. They argue that LLMs are useful as translation layers within this loop but cannot replace the human work of building stable abstractions and domain models. The discussion connects TDD, domain-driven design, and programming paradigms as tools for managing cognitive load and structuring code to survive change. They conclude that while LLMs excel at generating code within mature, well-established abstractions, they cannot drive the creation of new paradigms or build the deep structural understanding that makes software maintainable.
Key Insight
LLMs are powerful translation tools within established abstractions, but the human work of iteratively building stable domain models through the what/how feedback loop remains the essence of programming.
Spicy Quotes (click to share)
- 4
The primary challenge of software development is to build systems that survive change.
- 3
At its core, the act of programming is mapping the 'real' domain (the What) onto a computational model (the How).
- 5
Prompts alone satisfy a scenario, but don't build the structure of the solution to accommodate future scenarios.
- 3
TDD is a design strategy that operationalizes the feedback loop between 'what' and 'how.'
- 3
Since LLMs can operate at a lower level of precision they allow us to explore abstractions with more fluidity.
- 5
LLMs rely on maturity. If a language is not suitably mature, or if we are exploring a novel paradigm, the LLM will be insufficiently trained.
- 4
A human can use an LLM to hallucinate something weird but with potential, and then build on it.
- 4
We must iteratively drive the code to build the stable structure ourselves.
Tone
reflective
