Saturday, 8 October 2011

Fidgeting - what's it good for?

I've bought a few books to provide conceptual guidance for the project. During breaks yesterday, I found support for my assumptions (:->) in two of them: Steven Connor's Paraphernalia: The Curious Life of Magical Things, and Peter Seibel's Coders at Work: Reflections on the Craft of Programming. For Connor, magical things are fidgetable - you gain a more intimate relationship with them, and they transcend their mundane functional nature. I think there is a close relationship between this experience, and the intrinsic motivation when programmers engage in tinkering, as I called it in work with Laura Beckwith and Margaret Burnett.

There is a delicate balance for me here - the pleasures of fidgeting with code could easily occupy weeks of my time (yesterday, for example, exploring how to create custom pen strokes using the Java2D createStrokedShape). So I want to avoid them, but this is also the experience I want users of my language to have - so I need to make sure I embrace fidgeting from time to time. Seibel's interviewees are eloquent on the day-to-day pleasures of programming, but in terms of my overall goal, Simon Peyton Jones' description of research programming resonates: "thinking about programming in a whole new way [r]ather than just putting one more brick in the wall, we can build a whole new wall." I want to ensure that my fidgeting doesn't get me stuck in conventional ways of thinking. The results may be unpredictable - but as Simon says, academic research involves "professors go off and do sort of loopy things without being asked how it's benefiting the bottom line. Some will do things that turn out to be fantastically important, and some less so: but you can't tell which is which in advance!" (p.251).

No comments:

Post a Comment