Programmable Applications:
Interpreter Meets Interface
Maximising expressive power
in tools for creativity
ajithranka.com · @ajithranka
Hi there, I'm Ajith.
ajithranka.com · @ajithranka
Tools for grokking systems
ajithranka.com · @ajithranka
Tools for visualising data
ajithranka.com · @ajithranka
Tools for telling stories
ajithranka.com · @ajithranka
Code is a creative medium
ajithranka.com · @ajithranka
Code is a creative medium
ajithranka.com · @ajithranka
Learning to code is hard
- there's a lot going on
- fundamentals are vast and sprawling
- disconnects from hand-eye skills
ajithranka.com · @ajithranka
Working with code is limiting
ajithranka.com · @ajithranka
Programming | Direct Manipulation | |
---|---|---|
Ease of use | Harder | Easier |
Favours | Algorithmic | Free-form |
Expressivity | Limited | Limited |
Working with code is limiting
ajithranka.com · @ajithranka
Working with code is limiting
ajithranka.com · @ajithranka
What would a tool that maximises expressivity look like?
ajithranka.com · @ajithranka
1. A Paradigm for Software Design
ajithranka.com · @ajithranka
- Creative applications can combine a DM interface with a domain-enriched language
- The interpreter and the interface can work together in a variety of interesting ways
Programmable Applications,
Michael Eisenberg (1995)
2. Direct Manipulation and its Discontents
ajithranka.com · @ajithranka
- Pure DM interfaces are limited in expressivity
- Lack primitives that programming languages provide
Programmable Applications,
Michael Eisenberg (1995)
3. Programming and its Discontents
ajithranka.com · @ajithranka
- A general purpose programming language on its own goes to the other extreme
- We have knowledge that simply cannot be expressed through a linguistic channel
- General purpose languages lack the domain concepts that the artist-programmer is interested in
Programmable Applications,
Michael Eisenberg (1995)
4. Integrating Mind-work and Hand-work
ajithranka.com · @ajithranka
Thesis: To be truly expressive, creative tools must provide a combination of:
- a learnable direct manipulation interface, and
- a domain-enriched programming language,
- working together in synergy.
Example: SchemePaint by Eisenberg
ajithranka.com · @ajithranka
Programmable Applications, Michael Eisenberg (1995)
Example: SchemePaint by Eisenberg
ajithranka.com · @ajithranka
Programmable Applications, Michael Eisenberg (1995)
Example: Ronin by Hundred Rabbits
ajithranka.com · @ajithranka
Ronin by Hundred Rabbits, Devine Lu Linvega
hi@ajithranka.com
twitter.com/ajithranka
ajithranka.com
Programmable Applications:Interpreter Meets Interface
By Ajith Ranka
Programmable Applications:Interpreter Meets Interface
- 121