what counts as code to criticize?
TRANSCRIPT
![Page 1: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/1.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/2.jpg)
Software Studies
![Page 3: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/3.jpg)
![Page 4: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/4.jpg)
Digital HumanitiesCritical Code / Software Studies
expanding our concept ofwhat code we critique & how
![Page 5: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/5.jpg)
what does it mean to study software and
criticize code?
the question:
![Page 6: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/6.jpg)
further,
what is possible when performing critiques of
procedure & specification?
![Page 7: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/7.jpg)
programmer-levelrepresentations
let’s consider a variety of
![Page 8: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/8.jpg)
focus on three paradigmsmany starting points, but let’s begin with a
![Page 9: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/9.jpg)
VISUAL
PATCH ANDFLOW CONTROL PROGRAMMING
NATURAL
NATURAL LANGUAGE
PROGRAMMING
SOURCE
IMPERATIVE PROGRAMMING
![Page 10: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/10.jpg)
VISUAL
PATCH ANDFLOW CONTROL PROGRAMMING
NATURAL
NATURAL LANGUAGE
PROGRAMMING
SOURCE
IMPERATIVE PROGRAMMING
![Page 11: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/11.jpg)
VISUAL
PATCH ANDFLOW CONTROL PROGRAMMING
NATURAL
NATURAL LANGUAGE
PROGRAMMING
SOURCE
IMPERATIVE PROGRAMMING
![Page 12: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/12.jpg)
prototypicalor stereotypical
code
SOURCE
IMPERATIVE PROGRAMMING
![Page 13: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/13.jpg)
![Page 14: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/14.jpg)
SOURCE
OPERATION / DATA
CONCISION
REPETITION
EMPHASIS ON SYNTAX
SPECIALIZED VOCABULARY
COMMENTS
![Page 15: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/15.jpg)
“source”a point of departure
![Page 16: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/16.jpg)
VISUAL
PATCH ANDFLOW CONTROL PROGRAMMING
NATURAL
NATURAL LANGUAGE
PROGRAMMING
SOURCE
IMPERATIVE PROGRAMMING
![Page 17: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/17.jpg)
VISUAL
PATCH ANDFLOW CONTROL PROGRAMMING
NATURAL
NATURAL LANGUAGE
PROGRAMMING
SOURCE
IMPERATIVE PROGRAMMING
![Page 18: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/18.jpg)
![Page 19: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/19.jpg)
NLP
EXPRESSIVE POWER
ACCESSIBILITY
IMITATION OF COMPLEXITY
OVERDETERMINATION
![Page 20: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/20.jpg)
the problem:abstractionand depth
![Page 21: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/21.jpg)
which do we interpret?
the code?
or the compiler?
![Page 22: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/22.jpg)
implied readervs.
explicit reader
![Page 23: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/23.jpg)
VISUAL
PATCH ANDFLOW CONTROL PROGRAMMING
NATURAL
NATURAL LANGUAGE
PROGRAMMING
SOURCE
IMPERATIVE PROGRAMMING
![Page 24: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/24.jpg)
VISUAL
PATCH ANDFLOW CONTROL PROGRAMMING
NATURAL
NATURAL LANGUAGE
PROGRAMMING
SOURCE
IMPERATIVE PROGRAMMING
![Page 25: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/25.jpg)
![Page 26: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/26.jpg)
VISUAL
SPATIAL RELATIONSHIPS
SELF-REPRESENTING
TRACED RATHER THAN READ
A CLOUD OF BLACK BOXES
![Page 27: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/27.jpg)
how do we “close read”
a graphic specification?
visualliteracy?
![Page 28: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/28.jpg)
SOURCE FLOW
sequence space
literacy visual literacy
write map / graph
![Page 29: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/29.jpg)
procedural flow in visual art
VISUAL
putting visual programming in context:
![Page 30: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/30.jpg)
SCRIPTS COMICS GUIs
MAPS
VISUAL
INFOVIZ
![Page 31: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/31.jpg)
VISUAL
![Page 32: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/32.jpg)
VisualComplexity.com (2008)
prevalence of nodemaps in visualization art
![Page 33: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/33.jpg)
Dorian Lynskey’s “Going Underground” (2006)
subway map remix art: specifying transitions
![Page 34: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/34.jpg)
Dorian Lynskey’s “Going Underground” (2006)
![Page 35: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/35.jpg)
from Bill Barker’s SCHWA
flowchart / directed graph as CYOA narrative
![Page 36: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/36.jpg)
EGBGCounter-script
Martijn Engelbregt
![Page 37: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/37.jpg)
Counter-script part 1
visual flow specifies the protocol of performance
![Page 38: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/38.jpg)
Other works by Englebregt
![Page 39: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/39.jpg)
House of Leaves: mapping the labyrinth (2008)
document mapping to trace branching paths
![Page 40: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/40.jpg)
Chris Ware’s Jimmy Corrigan [detail]
comic links complex backstories with paths
![Page 41: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/41.jpg)
Jason Shiga’s Meanwhile
branching comic connects choices with paths
![Page 42: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/42.jpg)
Scott McCloud’s Carl [detail]
branching comic embeds choices in a grid
![Page 43: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/43.jpg)
a variety of ways to signifysequence,relation, &procedure
![Page 44: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/44.jpg)
what techniques do flow art & flow programminghave in common?
![Page 45: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/45.jpg)
GRID
GRID
FLOWART
VISUALPROGRAMMING
PATCH
PATCH
![Page 46: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/46.jpg)
GRID
GRID
FLOWART
VISUALPROGRAMMING
PATCH
PATCH
![Page 47: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/47.jpg)
Jason Shiga’s Meanwhile
branching comic connects choices with paths
![Page 48: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/48.jpg)
Miller Puckette / Cycling74’s Max / MSP
![Page 49: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/49.jpg)
![Page 50: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/50.jpg)
Yahoo! Pipes
![Page 51: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/51.jpg)
Quartz Composer (OS X)
![Page 52: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/52.jpg)
Quartz Composer (OS X)
Jason Shiga’s Meanwhile
![Page 53: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/53.jpg)
GRID
GRID
FLOWART
VISUALPROGRAMMING
PATCH
PATCH
![Page 54: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/54.jpg)
Scott McCloud’s Carl [detail]
![Page 55: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/55.jpg)
CarnageHeart
![Page 56: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/56.jpg)
Carnage Heart: robot program [detail]
Scott McCloud’s Carl [detail]
![Page 57: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/57.jpg)
/*****\ /*+*\ /!*/*!\ \ #! + // \\ * * */**$**/ * * * * .* +-----+ + +-----+* * * * * *\ / \ / \ /
PATH esoteric / weird programming language
... “cartesian programming” ....
![Page 58: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/58.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/59.jpg)
$ 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?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/60.jpg)
PATCH GRID
objects directions
sequences axes
relationships spatial relations
![Page 61: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/61.jpg)
conclusion
![Page 62: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/62.jpg)
VISUAL
PATCH ANDFLOW CONTROL PROGRAMMING
NATURAL
NATURAL LANGUAGE
PROGRAMMING
SOURCE
IMPERATIVE PROGRAMMING
![Page 63: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/63.jpg)
SOURCE FLOW
sequence space
literacy visual literacy
write map / graph
![Page 64: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/64.jpg)
GRID
GRID
FLOWART
VISUALPROGRAMMING
PATCH
PATCH
![Page 65: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/65.jpg)
PATCH GRID
objects directions
sequences axes
relationships spatial relations
![Page 66: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/66.jpg)
there is no one type of code to criticize
![Page 67: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/67.jpg)
every logic of specification is its own
paradigm for critique
![Page 68: What Counts as Code to Criticize?](https://reader035.vdocuments.net/reader035/viewer/2022071602/613d6062736caf36b75c99d1/html5/thumbnails/68.jpg)
Jeremy DouglassPostdoctoral Researcher
Software Studies InitiativeUniversity of California San Diego