AI Native Dev

Dave Farley - Vibe Coding - Is this really the best we can do? - AI Native DevCon June 2026

Published 2026-07-25 · Duration 32:05

Summary

The talk argues that while AI represents a massive paradigm shift in software development, relying solely on natural language or current agentic coding practices is insufficient for building complex systems. The core message is that the industry must evolve from being 'solution-focused' to 'specification-focused.' Future programming requires defining desired behaviors using precise Domain Specific Languages (DSLs) and executable specifications (like BDD), ensuring verification at every incremental step.

Download summary

Key takeaways

  1. The Limitations of Natural Language 12:10

    Natural language is inherently vague, open to misinterpretation, and lacks the simple, consistent grammar required for precise machine execution. It cannot reliably define goals or guarantee deterministic results, making it unsuitable as a primary development tool.

  2. The Role of Specification over Solution 17:25

    Programming languages should be viewed not just as tools to encode algorithms (the solution), but primarily as mechanisms to organize and communicate a precise description of the problem itself. The future program must be an executable specification of what is desired, rather than merely the code that achieves it.

  3. The Necessity of Incremental Verification 23:55

    To manage the speed and scale of AI-generated code (e.g., 12,000 lines/day), development must maintain its core engineering principles: working incrementally, treating changes as experiments, and rigorously verifying every step using continuous delivery practices.

Technical details

  • Testing Philosophy 375s

    Tests are not for proving success or challenging genius; they are a form of measurement used to confirm that the system continues to achieve defined goals. AI-generated tests based only on existing code risk reinforcing initial errors, as they cannot infer the true underlying goals.

  • Programming Language Goals 605s

    Farley argues that programming languages serve three primary functions: 1) Organizing thought about a problem; 2) Acting as a communication tool between humans; and 3) Telling the computer what to do. They achieve this through simple, consistent grammars, ensuring unambiguous and deterministic execution.

  • Future Development Model 1205s

    The proposed model involves using a programmer-invented problem-specific DSL to define all desired system behaviors. The AI then generates code, which is immediately subjected to executable specifications (BDD-style tests) that verify the functional correctness against defined requirements.

  • AI's Role in Development 1750s

    The role of AI assistance should be viewed analogously to a compiler: we care about verifying the *results* (the behaviors) rather than scrutinizing the generated implementation code itself. This shifts focus back to rigorous verification and specification.

Mentioned resources

  • Nwave (Open Source Project)

Channel & topics

Watch on YouTube · Back to latest

This independent, AI-assisted summary is provided for commentary and informational purposes. It may contain errors or omit important context. Please watch the original video for the creator's complete presentation. Video, thumbnail, and related copyrights belong to their respective owners.