The Mother of all Programming Languages Demos • Sean McDirmid • YOW! 2015

Explore how programming environments can evolve from discrete, archery-like interactions to continuous feedback loops, with insights on live coding, visual tools & the future of development.

Key takeaways
  • Programming environments need to move from discrete, archery-like interactions (aim, shoot, miss, repeat) to continuous, water hose-like feedback loops where small input changes yield immediate visual feedback

  • “Holy terms” allow for flexible placeholders that can be manipulated directly in the UI and automatically propagate changes throughout the code without explicit type annotations

  • Live programming with continuous execution enables seeing program state and behavior without setting breakpoints or print statements, making the development process more fluid

  • Visual programming interfaces that combine sketching, direct manipulation, and code should allow seamless transitions between concrete examples and abstractions

  • “Scrubbing” values and parameters provides immediate visual feedback and helps explore the solution space more intuitively than typing exact numbers

  • Programming tools should focus on the programming experience and execution feedback loops rather than just language expressiveness

  • Future programming environments need to support more fluid experiences where changes are incrementally incorporated into running programs rather than requiring full restarts

  • Machine learning and AI advancements mean programmers need better tools to stay competitive and become “human-machine learners”

  • The ideal programming experience should feel like using a water hose - continuous, immediate feedback rather than the current archery-like experience of aim, shoot, evaluate, repeat

  • Layouts and UI can be sketched and parameterized without writing code directly, automatically inferring relationships and constraints between elements