The programmer's imagination
05-29, 12:55–13:25 (Europe/London), Music Hall

As creators of software, we're repeatedly told that we're not merely imagining the future of the world, but bringing it into being. Let's suppose that's true. What, exactly, are we imagining?


Of all our faculties, imagination is usually considered the freest, the seat of creation.

According to Immanuel Kant, imagination allows us to take what nature gives us, and work it up into something new, that doesn't yet exist: "As natural physical beings we are bound by laws of nature, as moral agents by the law of practical reason, but as imaginative creatures we are constrained by neither and thus have creative power."

What's more, as programmers, we are a special kind of imagineer. Unlike other engineers, or pharmacologists, or architects (but like writers and musicians) we get to work upon a blank page.

I'm interested in what we are doing with this freedom, and I am suspicious of it.

Firstly, I think that the more grandiose the pictures we describe and draw, the less they actually matter.

Secondly, I think that the things we don't even realise we're doing are the ones that are really shaping our future.

And thirdly and most importantly, I think that the marvellous new worlds we conjure up on our blank pages can always be traced back to assumptions, prejudices and desires that are active right now: the programmer's imagination isn't telling us about the future, but about now - and what's wrong with it.

What do small and harmless things like Django's own success page tell us about our own thinking? What does Django make us think?

As well as Immanuel Kant, dinosaurs and birds, palaeoart and 1980s computer programming books, David H Ahl and Jason Lanier will be brought on stage to help make sense of what we're doing, what we think we're doing, the relationship between them - and what, perhaps, we should be doing.

I am a Director of Engineering at Canonical, where I lead documentation practice. I enjoy helping organise community conferences for Python and Django, and helping people and open-source projects improve their documentation.

I am the author of the Diátaxis documentation framework, and unless I commit a noteworthy crime I expect that is what I will be best known for.

This speaker also appears in: