More on Abstracting Craft by McCullough. (See previous blog entries.)
How is code a medium? Code, symbols, abstractions, notation, structure, generative structure, mental models – terms McCullogh plays with.
The computer forces us to encode that which we want to manipulate. On the computer we simply manipulate codes – symbols. We develop structures of codes for different purposes. That is what a software tool does – it presents us with a structure within which to play. Unlike crafts that deal with physical media, craft on the computer resembles disciplines that deal with notations like music or writing. Good software and good digital craftspeople don’t think of the medium as code, but develop mental models based often on virtual realities. They think of drawing not CLUTs.
The structures developed on computers are not in reality – they are generative structures – designed to constrain in order to generate. They open a particular set of possibilities – like a painting program that lets you do certain things.
Computers let us build levels of abstraction. We start with bits (1s and 0s) which are an abstraction of what is physically written on devices. From bits we can develop character sets or lookup tables for higher order entities. These are codes that stand in for a colour or letter. From characters we can develop objects or elements of even higher orders like an html paragraph or postscript shape. From these elements we can develop complex objects or clusters that are works in these sense of whole artefacts for output.
One way to compare computers as a medium to crafts is to look at the type of activity of the creator. Computers have gone from batch interfaces where there is not the continuous interaction typical of a hand craft to direct manipulation (of a symbollic artifact) typical of hand crafts. In between batch and direct is dialogue manipulation where you enter into a dialogue (or dialogue box) with the system. This continuum from batch – dialogue – direct (and eventually to embedded computing) is both the history of interface and the variety of control. One is not better than the other – some things we want done automatically (by batch agents) and others we want to cotrol directly. (See section on “Dialogue” in chpater on “Interfaces” page 135.)