Friday, November 23, 2007

Coding: Less Kung Fu, More Buddha Machine

A post on the Nixon-McInnes blog about movement-based interfaces for coding integrates well with the idea of Metaphysical Code, but takes it in the wrong direction, I think. Code is not physical. Code is about the flow of information. Movement is about the flow of force. There are some nice comparisons to be made between the two, but interface wise, I think we can do better.

Personally, I'd love to see a more systemic approach to coding. Perhaps a better sibling to coding is music: both have a number of "threads" interacting over time - both in and of themselves (FOR loop = a snare drum loop), but also with each other (Global scopes = a general 4/4 beat). Shifting between the two, parallel and serial, places an emphasis on the process rather than the output (which, perhaps, is what all coders are really interested in...?)

So maybe a new wave of coding interfaces should take some lessons from the Reactable and from the Buddha Machine: simple components representing "chunks" of code that are combined systemically to create a process/flow. Note the similarity between "Buddha Boxing" in the video below (where 2 people take it in turns to add or remove simple music loops) to Pairing in Extreme Programming:

Thinking about it, we generally already take a systemic approach - it's called Software Design. Functions, Objects and Modulators interact just like Reactable objects. Flowcharts and Interaction Diagrams are mapped out using napkins, whiteboards, software, so why not map them out with tangible items?

No comments: