- Author
- Unmesh Joshi, on martinfowler.com
- Published
- 14 July 2026
- Kind
- Practitioner article, with worked examples
- Original
- martinfowler.com/articles/llm-and-dsls.html
- Subject
- Checkable specs for coding agents
- Themes
- Saying it exactly, Checking the work
What it is
Unmesh Joshi argues that abstractions and domain-specific languages give LLMs clear boundaries. The main example is Tickloom, Joshi's framework for testing distributed systems. It describes two phases: designing the language with an LLM, then using it as interface.
What it says
- A first spec is a hypothesis, because design is discovered during implementation.
- DSLs strip away variation, so a few in-context examples are often enough.
- A DSL's parser, schema or compiler lets an agent generate, check and repair alone.
- Errors arrive in domain terms, not as stack traces from generated code.
- Progressive interfaces make illegal sequences fail to compile, such as an action before a client.
- The durable asset is the DSL and its semantic model, not the prompt.
What evidence it gives
The evidence is worked examples, including a step-marked PlantUML tool and Tickloom scenarios. Joshi describes the reliability benefit as an observation. The article reports no measurements.
Interests and limits
Joshi notes that a DSL has real design and maintenance costs. The advantage only holds while the language stays small. Joshi also says frontier models already know languages like PlantUML, so novel DSLs remain untested.
Connections
These links are this wiki's own reading, not claims the sources make.
- What Heraldry and Japanese Mon Can Teach Us About Building Visual-Identity Generators. In heraldry, choosing the field limits what may follow. Joshi's interfaces do the same, allowing no action before a client. Blazon and a small DSL both make wrong output hard to say.