Vibe Coding Meets the Philosopher's Stone: Why AI Agents Can't Get It Perfect
Microsoft
The initial enthusiasm for vibe coding—using AI agents to generate code from natural language prompts—faded as it became clear that agents excel only at simple tasks. The article argues that from a semiotic perspective, it is fundamentally impossible to write a specification that perfectly guides an agent to produce exactly the intended outcome. Instead of chasing this illusion, the author proposes using domain-specific languages (DSL) to narrow the interpretation space, which AI can now help create cheaply, making it a viable trend.
The article discusses the evolution from vibe coding to agentic coding. Initially, AI agents could generate impressive code for simple tasks, but serious projects revealed that agents often struggle without detailed specifications, leading to a more disciplined approach known as agentic coding. Still, the dream of perfect code generation from natural language persists. The author argues that semiotics shows why this is impossible: words are signs whose meaning depends on their position in a system and the interpreter's experience, so a specification can never be a lossless encoding of intent. Even with detailed specs, the agent interprets rather than follows rules exactly, leading to unpredictable results. The author suggests that instead of trying to create a universal specification language, we should use domain-specific languages (DSL) for specific problem domains, as they reduce the space of interpretations. AI agents are particularly good at helping design DSLs, making their creation cheaper and more feasible for narrow domains. The article cites Microsoft Research's 'Programming with Representations' (2023) and other upcoming references. The author concludes that while the philosopher's stone of perfect AI code generation may never be found, the search itself can lead to valuable innovations like DSLs.
- Abbreviations
- DTO = Data Transfer Object — объект передачи данных
- LLM = Large Language Model — большая языковая модель
- SQL = Structured Query Language — язык структурированных запросов
- DSL = Domain-Specific Language — предметно-ориентированный язык
- JSON = JavaScript Object Notation — нотация объектов JavaScript
- API = Application Programming Interface — программный интерфейс приложения
Source: Habr — хаб ИИ —
original
