We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
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.
- 
    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