This Y Combinator talk by Andrej Karpathy focuses on the transformative impact of AI, specifically Large Language Models (LLMs), on software development. Karpathy introduces a new classification of software—Software 3.0—characterized by LLM-based programming in natural language, contrasting it with Software 1.0 (traditional code) and Software 2.0 (neural networks). He explores the implications of this shift, including new application design, human-AI collaboration, and the rise of "vibe coding."
Software 3.0: Karpathy introduces Software 3.0, where LLMs are programmed using natural language prompts (like English), representing a fundamental shift in software development. This contrasts with Software 1.0 (explicit code) and Software 2.0 (neural network weights).
LLMs as Utilities, Fabs, and Operating Systems: Karpathy draws analogies between LLMs and utilities (like electricity), fabs (manufacturing facilities), and operating systems, highlighting their multifaceted roles in the evolving technological landscape. He notes the current centralized nature of LLMs, akin to the early days of computing.
Partial Autonomy Apps: The talk emphasizes the design of partially autonomous applications that leverage LLMs but retain human oversight via GUIs and "autonomy sliders," allowing users to control the level of AI involvement. Examples like Cursor and Perplexity illustrate this approach.
Human-AI Collaboration and "Vibe Coding": Karpathy stresses the importance of efficient human-AI collaboration loops, where humans verify AI-generated outputs. He introduces "vibe coding," highlighting how natural language programming democratizes software development, making it accessible to non-programmers. He demonstrates this with personal projects, like an iOS app and a menu image generation app (Menu Gen).
Building for Agents: Karpathy advocates for building digital infrastructure that directly supports LLM agents, suggesting changes like lm.txt files (analogous to robots.txt) to guide LLMs and the adoption of LLM-friendly documentation formats like markdown.