read


read
or learn more

Code painting

Feb 16, 2015

I have a confession to make. I have a lot of ongoing projects.

From a trilogy of books on programming, to a re-read of the masterworks of science fiction, to various love letters to Lisp 1, to language meandering, to game design, to baseball, to abstract strategy, I like to flit my mind from topic to topic. However, aside from the books that I’ve written, very little of what I create tells a story. Therefore, rather than trying my hand at fiction2 I’ve decided an experiment this year to tell stories with code — via a mechanism that I’m calling code painting.

lambda

A code painting is a source repository of indeterminate size that:

  • Tells a story
  • May or may not be generally useful
  • Should be as beautiful, abstract, or amusing as possible3
  • Should be created in the spirit of exploration where the exploration itself is the goal

As you can see, code painting is about discovery, story-telling, and fun and is in no way meant as an exercise in creating yet-another-open-source-library. The world has enough open source libraries, but it has too few code paintings.

As it turns out I’ve created a few code paintings in my time, most recently Codd, Himera, and μLithp, but even these need some work to lift them4 to the level of code paintings. My task for 2015 is to paint these libraries and others and maybe hold a code painting exhibition at some local meetup or conference.

Let’s see how it goes.

Where do you hang your own code paintings?

:F


  1. … and little languages. 

  2. Trust me, no one wants that. 

  3. If I had to choose, I would say that the greatest code painter that I’ve ever seen in action is Will Byrd from the University of Utah and of Scheme/miniKanren fame. 

  4. Or to lower depending on your perspective. 

2 Comments, Comment or Ping

  1. I think Conor McBride is brilliant at this. His papers are insightful, amusing and sometimes unprecedented. The latest example:

    https://personal.cis.strath.ac.uk/conor.mcbride/pub/Totality.pdf

    Written using Literate Agda:

    https://github.com/pigworker/Totality

    Totally brilliant.

  2. I like this notion of code painting. I think it does a good job of describing how I’ve been going about my projects lately. In particular I’ve been exploring L-systems and cellular automata and putting together a library that abstracts out the fundamental nature of these things in a way that I hope is both beautiful and useful.

    I’m also intentionally implementing these in a way that I hope will allow them to be taken in new directions, rather than just being yet-another-library that does what all the others do. Anyhow, I’ve hung this painting on github at https://github.com/decomplect/ion/blob/master/src/ion/ergo/core.cljc

    Careful, the paint is still wet…

Reply to “Code painting”