what counts as code to criticize?

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

Upload: others

Post on 12-Sep-2021

9 views

Category:

Documents


0 download

TRANSCRIPT

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