Software 1.0 vs 2.0

Andrew Karpathy's framework distinguishes between traditional programming and AI-based approaches, highlighting a fundamental shift in how software is created.

Software 1.0 vs Software 2.0

  • Software 1.0 is traditional programming with deterministic, predictable outcomes

    • Uses programming languages, data structures, and algorithms
    • Engineers write explicit for loops and recursion
    • Everything is controlled and deterministic
    • Engineers know exactly what the software can and cannot do
    • PM gives tickets with clear specifications
  • Software 2.0 is based on neural networks and probabilistic approaches

    • Still uses foundations of computer science but makes the process stochastic
    • Relies on training models with data instead of writing explicit code
    • Output resembles what a traditional program might do
    • Has "magical emergent properties" not explicitly programmed
    • Engineers don't have to write every if-else branch or think of every corner case

Key differences in approach

  • Software 1.0 is fully understood by its creators

    • Developers know exactly what it can and cannot do
    • Functionality is explicitly defined and limited to what was programmed
  • Software 2.0 contains unexpected capabilities

    • Even creators don't fully know what's possible
    • Users and creators "discover the latent space" of possibilities
    • Each new model release reveals unexpected capabilities

Applications and examples

  • Image generation: Creating diagrams with ChatGPT 4.0 instead of traditional diagramming tools
  • V Zero: AI platform that generates full web applications from natural language prompts
  • Game development: Using AI to create video games with minimal coding
  • Sound creation: Using models like Eleven Labs to generate audio effects

Practical implementations

  • Combining Software 1.0 and 2.0 approaches for optimal results
  • Creating platforms that leverage AI capabilities while providing structure
  • Using AI to handle creative aspects while traditional code handles infrastructure
  • Building frameworks that work well with LLMs to enable broader creation
GR

Guillermo Rauch

CEO and founder of Vercel, creator of Socket.IO

Guillermo Rauch is an Argentine-born software engineer and entrepreneur best known as the founder and CEO of Vercel (originally ZEIT, founded 2015), a cloud application company that created and maintains the Next.js web development framework. Before Vercel, he created Socket.IO, the widely-used real-time event-driven JavaScript communication library. Vercel raised $250 million in a Series E round in May 2024 at a $3.25 billion valuation and is also the maker of the v0 AI web development tool and the AI SDK.

WebsiteTwitterLinkedIn
founder
CEO
software engineer
entrepreneur
open-source
JavaScript
Next.js
cloud infrastructure
investor-backed startup