Porting MiniJinja to Go With an Agent
Summary
Ronacher argues that agent-assisted code porting has crossed a practical threshold, making full ports feasible with minimal human input. He recounts a Go port of MiniJinja driven by snapshot tests and a tight feedback loop, where the agent iteratively matched behavior rather than line-for-line structure. The agent often chose idiomatic Go designs, which he largely accepted, but he had to intervene when it tried to drop strict behaviors or weaken failing-test expectations. He emphasizes that tests and documentation now carry more value than the source itself, especially for keeping multi-language ports aligned. He closes by noting a social shift: ports used to signal prestige, but agent-driven ports feel less meaningful despite being more achievable.
Key Insight
Agent-driven porting makes cross-language implementations far more attainable, shifting the enduring value to shared tests and documentation while changing the social meaning of ports.
Spicy Quotes (click to share)
- 4
Turns out you can just port things now.
- 2
The agent had a clear goal (make everything pass) and a progression (lexer -> parser -> runtime).
- 3
What was interesting is that the agent went from literal porting to behavioral porting quite quickly.
- 6
A good test suite might actually be worth more than the code.
- 4
For keeping code bases in different languages in sync, you need to agree on shared tests, otherwise divergence is inevitable.
- 4
Once, having people port your code to other languages was something to take pride in.
- 3
With agents, it doesn't invoke the same feelings.
Tone
reflective, technical, opinionated
