March 11th, 2004


Deus In Machina

To successfully operate any machine the mind has to replicate the machine internally.
The operator absorbs the logic of the machine and thoughts proceed in a way alien to 'normal' thinking.
This is why great performers are fascinating to watch, because they no longer embody humanity - but rather the logic of an instrument or machine.

As a programmer, I start off learning a new system in a somewhat clumsy way, trying to make it work in the way that I want it to, trying to find equivalents to the way I'm used to working, searching the help files for the phrases I think will lead me to what I want.  I get grouchy at the way that the commands aren't quite right for my purpouses, they don't seem designed to make my life easier, to produce the output I want.  The system seems to get in the way more than it makes it easier. 

Slowly I uncover commands that differ even more from the ways I'm used to working - provide functionality that seems strange and contrary.  The example code does things _like_ what I want, but not what quite.  I try a few of them out - just for fun.  Test a few things to see what they do, get a feel for how they work.

And then suddenly it clicks - I can see how the system _wants_ me to work.  Taking my code and moving a few things about I suddenly find everything is running twice as fast and I've lost a third of my code.  Everything gets rewritten 3 or 4 times as I try to find the optimum way to attack the problem.

And then I'm up and running - the problems obviously break themselves down into the parts I have to play with.  I know how the system's creator thinks, for every problem I just have to imagine what they would do to solve it and then look for the tool that does that.

I'm sure it takes a certain kind of mind to do this.  One that can let go of the established way of working and come round to a new approach.  One that can jump from reality-tunnel to reality-tunnel until it finds the one that matches the tool and the problem.  Mine does it fairly well, but I still have that jarring feeling every time I start a new system.  I'd like to be able to let go much easier, to not feel that sinking impotent feeling when I can't twist the system to my will.  With each new language, tool and API it becomes a little easier, but I'm always going to have to work at it.

Oh, the quote is from today's Guardian, where they interview a trombonist on his work with avant-noise musician Squarepusher.