68
What Counts as Code to Criticize? Interpreting Visual and Natural Language Programming Jeremy Douglass Postdoctoral Researcher Software Studies Initiative University of California San Diego Digital Humanities 2009 - U. Maryland College Park - 2009-06-24

What Counts as Code to Criticize?

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: What Counts as Code to Criticize?

What Counts as Code to Criticize?Interpreting Visual and Natural Language Programming

Jeremy Douglass

Postdoctoral ResearcherSoftware Studies InitiativeUniversity of California San Diego

Digital Humanities 2009 - U. Maryland College Park - 2009-06-24

Page 2: What Counts as Code to Criticize?

Software Studies

Page 3: What Counts as Code to Criticize?
Page 4: What Counts as Code to Criticize?

Digital HumanitiesCritical Code / Software Studies

expanding our concept ofwhat code we critique & how

Page 5: What Counts as Code to Criticize?

what does it mean to study software and

criticize code?

the question:

Page 6: What Counts as Code to Criticize?

further,

what is possible when performing critiques of

procedure & specification?

Page 7: What Counts as Code to Criticize?

programmer-levelrepresentations

let’s consider a variety of

Page 8: What Counts as Code to Criticize?

focus on three paradigmsmany starting points, but let’s begin with a

Page 9: What Counts as Code to Criticize?

VISUAL

PATCH ANDFLOW CONTROL PROGRAMMING

NATURAL

NATURAL LANGUAGE

PROGRAMMING

SOURCE

IMPERATIVE PROGRAMMING

Page 10: What Counts as Code to Criticize?

VISUAL

PATCH ANDFLOW CONTROL PROGRAMMING

NATURAL

NATURAL LANGUAGE

PROGRAMMING

SOURCE

IMPERATIVE PROGRAMMING

Page 11: What Counts as Code to Criticize?

VISUAL

PATCH ANDFLOW CONTROL PROGRAMMING

NATURAL

NATURAL LANGUAGE

PROGRAMMING

SOURCE

IMPERATIVE PROGRAMMING

Page 12: What Counts as Code to Criticize?

prototypicalor stereotypical

code

SOURCE

IMPERATIVE PROGRAMMING

Page 13: What Counts as Code to Criticize?
Page 14: What Counts as Code to Criticize?

SOURCE

OPERATION / DATA

CONCISION

REPETITION

EMPHASIS ON SYNTAX

SPECIALIZED VOCABULARY

COMMENTS

Page 15: What Counts as Code to Criticize?

“source”a point of departure

Page 16: What Counts as Code to Criticize?

VISUAL

PATCH ANDFLOW CONTROL PROGRAMMING

NATURAL

NATURAL LANGUAGE

PROGRAMMING

SOURCE

IMPERATIVE PROGRAMMING

Page 17: What Counts as Code to Criticize?

VISUAL

PATCH ANDFLOW CONTROL PROGRAMMING

NATURAL

NATURAL LANGUAGE

PROGRAMMING

SOURCE

IMPERATIVE PROGRAMMING

Page 18: What Counts as Code to Criticize?
Page 19: What Counts as Code to Criticize?

NLP

EXPRESSIVE POWER

ACCESSIBILITY

IMITATION OF COMPLEXITY

OVERDETERMINATION

Page 20: What Counts as Code to Criticize?

the problem:abstractionand depth

Page 21: What Counts as Code to Criticize?

which do we interpret?

the code?

or the compiler?

Page 22: What Counts as Code to Criticize?

implied readervs.

explicit reader

Page 23: What Counts as Code to Criticize?

VISUAL

PATCH ANDFLOW CONTROL PROGRAMMING

NATURAL

NATURAL LANGUAGE

PROGRAMMING

SOURCE

IMPERATIVE PROGRAMMING

Page 24: What Counts as Code to Criticize?

VISUAL

PATCH ANDFLOW CONTROL PROGRAMMING

NATURAL

NATURAL LANGUAGE

PROGRAMMING

SOURCE

IMPERATIVE PROGRAMMING

Page 25: What Counts as Code to Criticize?
Page 26: What Counts as Code to Criticize?

VISUAL

SPATIAL RELATIONSHIPS

SELF-REPRESENTING

TRACED RATHER THAN READ

A CLOUD OF BLACK BOXES

Page 27: What Counts as Code to Criticize?

how do we “close read”

a graphic specification?

visualliteracy?

Page 28: What Counts as Code to Criticize?

SOURCE FLOW

sequence space

literacy visual literacy

write map / graph

Page 29: What Counts as Code to Criticize?

procedural flow in visual art

VISUAL

putting visual programming in context:

Page 30: What Counts as Code to Criticize?

SCRIPTS COMICS GUIs

MAPS

VISUAL

INFOVIZ

Page 31: What Counts as Code to Criticize?

VISUAL

Page 32: What Counts as Code to Criticize?

VisualComplexity.com (2008)

prevalence of nodemaps in visualization art

Page 33: What Counts as Code to Criticize?

Dorian Lynskey’s “Going Underground” (2006)

subway map remix art: specifying transitions

Page 34: What Counts as Code to Criticize?

Dorian Lynskey’s “Going Underground” (2006)

Page 35: What Counts as Code to Criticize?

from Bill Barker’s SCHWA

flowchart / directed graph as CYOA narrative

Page 36: What Counts as Code to Criticize?

EGBGCounter-script

Martijn Engelbregt

Page 37: What Counts as Code to Criticize?

Counter-script part 1

visual flow specifies the protocol of performance

Page 38: What Counts as Code to Criticize?

Other works by Englebregt

Page 39: What Counts as Code to Criticize?

House of Leaves: mapping the labyrinth (2008)

document mapping to trace branching paths

Page 40: What Counts as Code to Criticize?

Chris Ware’s Jimmy Corrigan [detail]

comic links complex backstories with paths

Page 41: What Counts as Code to Criticize?

Jason Shiga’s Meanwhile

branching comic connects choices with paths

Page 42: What Counts as Code to Criticize?

Scott McCloud’s Carl [detail]

branching comic embeds choices in a grid

Page 43: What Counts as Code to Criticize?

a variety of ways to signifysequence,relation, &procedure

Page 44: What Counts as Code to Criticize?

what techniques do flow art & flow programminghave in common?

Page 45: What Counts as Code to Criticize?

GRID

GRID

FLOWART

VISUALPROGRAMMING

PATCH

PATCH

Page 46: What Counts as Code to Criticize?

GRID

GRID

FLOWART

VISUALPROGRAMMING

PATCH

PATCH

Page 47: What Counts as Code to Criticize?

Jason Shiga’s Meanwhile

branching comic connects choices with paths

Page 48: What Counts as Code to Criticize?

Miller Puckette / Cycling74’s Max / MSP

Page 49: What Counts as Code to Criticize?
Page 50: What Counts as Code to Criticize?

Yahoo! Pipes

Page 51: What Counts as Code to Criticize?

Quartz Composer (OS X)

Page 52: What Counts as Code to Criticize?

Quartz Composer (OS X)

Jason Shiga’s Meanwhile

Page 53: What Counts as Code to Criticize?

GRID

GRID

FLOWART

VISUALPROGRAMMING

PATCH

PATCH

Page 54: What Counts as Code to Criticize?

Scott McCloud’s Carl [detail]

Page 55: What Counts as Code to Criticize?

CarnageHeart

Page 56: What Counts as Code to Criticize?

Carnage Heart: robot program [detail]

Scott McCloud’s Carl [detail]

Page 57: What Counts as Code to Criticize?

/*****\ /*+*\ /!*/*!\ \ #! + // \\ * * */**$**/ * * * * .* +-----+ + +-----+* * * * * *\ / \ / \ /

PATH esoteric / weird programming language

... “cartesian programming” ....

Page 58: What Counts as Code to Criticize?

the PATH interpreter follows a path of instruction symbols which make up a program. The program can go up, down, left and right, and can also overlap itself. Also, the interpreter simply skips over any characters that aren't valid instruction symbols.

Page 59: What Counts as Code to Criticize?

$ Start the program here, heading right.# End the program./ Turn 90 degrees without crossing line.\ Turn 90 degrees without crossing line+ Increment the current memory cell.- Decrement the current memory cell.! Jump over the next symbol.. Output a character from current memory., Input a character from current memory.} Move to the next memory cell.{ Move to the previous memory cell.^ If current memory is not 0, turn up.< If current memory is not 0, turn left.> If current memory is not 0, turn right.v If current memory is not 0, turn down.

Page 60: What Counts as Code to Criticize?

PATCH GRID

objects directions

sequences axes

relationships spatial relations

Page 61: What Counts as Code to Criticize?

conclusion

Page 62: What Counts as Code to Criticize?

VISUAL

PATCH ANDFLOW CONTROL PROGRAMMING

NATURAL

NATURAL LANGUAGE

PROGRAMMING

SOURCE

IMPERATIVE PROGRAMMING

Page 63: What Counts as Code to Criticize?

SOURCE FLOW

sequence space

literacy visual literacy

write map / graph

Page 64: What Counts as Code to Criticize?

GRID

GRID

FLOWART

VISUALPROGRAMMING

PATCH

PATCH

Page 65: What Counts as Code to Criticize?

PATCH GRID

objects directions

sequences axes

relationships spatial relations

Page 66: What Counts as Code to Criticize?

there is no one type of code to criticize

Page 67: What Counts as Code to Criticize?

every logic of specification is its own

paradigm for critique

Page 68: What Counts as Code to Criticize?

Jeremy DouglassPostdoctoral Researcher

Software Studies InitiativeUniversity of California San Diego