Programmable Applications:
Interpreter Meets Interface

Maximising expressive power
in tools for creativity

ajithranka.com · @ajithranka

Hi there, I'm Ajith.

  • software designer-developer
  • 🇮🇳 → 🇬🇧
  • tools for creative expression

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

  • 139