Physical Reality as Type System
- Knitting notation treats physical constraints (yarn direction, needle capacity) as compile-time invariants, not runtime checks
- The notation literally cannot express impossible operations - unlike most programming languages where invalid states are runtime errors
Semantic 2D Syntax
- Spatial positioning encodes operational meaning, not just formatting
- Chart coordinates directly map to fabric coordinates - position IS semantics
- Most programming languages waste the 2D plane on purely aesthetic layout
Context-Dependency That Works
- Heavy context-switching (RS/WS, cable positions) remains manageable because contexts map to physical realities practitioners can feel
- Suggests context-dependent syntax works when contexts correspond to user’s embodied experience
- Contradicts typical CS wisdom that context-dependency is always bad design
Expert Chunking Over Beginner Clarity
- Single symbols encode 4+ sequential operations for expert efficiency
- Notation evolved to optimize pattern recognition for power users, not learning curves
- Inverse of typical programming language priorities (readability over expert speed)
Domain Invariants Enable Multi-Modal Translation
- Knotty’s translation capabilities required modeling yarn physics, not just syntax
- The type system encodes gauge, tension, and material properties as first-class constraints
- Shows DSL success requires modeling domain physics, not just domain vocabulary
Power-Law Feature Adoption
- 10 symbols for basics, 200+ for experts - mirrors programming language feature creep
- But knitting notation maintained backwards compatibility across complexity levels
- Suggests sustainable complexity growth patterns for language design
Physical Reality as Type System
- Knitting notation treats physical constraints (yarn direction, needle capacity) as compile-time invariants, not runtime checks
- The notation literally cannot express impossible operations - unlike most programming languages where invalid states are runtime errors
Semantic 2D Syntax
- Spatial positioning encodes operational meaning, not just formatting
- Chart coordinates directly map to fabric coordinates - position IS semantics
- Most programming languages waste the 2D plane on purely aesthetic layout
Context-Dependency That Works
- Heavy context-switching (RS/WS, cable positions) remains manageable because contexts map to physical realities practitioners can feel
- Suggests context-dependent syntax works when contexts correspond to user’s embodied experience
- Contradicts typical CS wisdom that context-dependency is always bad design
Expert Chunking Over Beginner Clarity
- Single symbols encode 4+ sequential operations for expert efficiency
- Notation evolved to optimize pattern recognition for power users, not learning curves
- Inverse of typical programming language priorities (readability over expert speed)
Domain Invariants Enable Multi-Modal Translation
- Knotty’s translation capabilities required modeling yarn physics, not just syntax
- The type system encodes gauge, tension, and material properties as first-class constraints
- Shows DSL success requires modeling domain physics, not just domain vocabulary
Power-Law Feature Adoption
- 10 symbols for basics, 200+ for experts - mirrors programming language feature creep
- But knitting notation maintained backwards compatibility across complexity levels
- Suggests sustainable complexity growth patterns for language design