Putting code on display
Some months ago, the people I share offices with had an exhibition showing off their works. They are all visual designers and artist, so their works are fairly easy to exhibit.
I turned down being part of the exhibition, primarily because I couldn’t figure out what to showcase.
What is a coder to do?
Sure, I could’ve created printouts of pages from the many sites I’ve built, but that’ s not really showing off my work. A screenshot is fine for showing the visuals of a website, but that’s not what I (usually) do.
I am a programmer, I write code. I would like to be able to exhibit the stuff I actually produce, not the final product that the code produces. The problem with code is that you have to be a programmer to appreciate it.
Music is art, but show me a book of sheet music and I won’t be able to appreciate it. I need someone to interpret the notes and perform the music for me to experience it.
Can we – and if so, how – exhibit our code in a way that becomes interesting to the casual observer?
The project over time
The open source project, gource, creates pretty movies of how a project evolves over time. You can see how developers move around the project like little busy ants, adding, changing and deleting files.
This is definitely visually interesting and is close to what I am looking for. While this isn’t really displaying the code in any way, it is a great way to see the big view of what happens in real software projects.
The execution of code
On the same visualization-over-time-page as gource, it would perhaps be interesting if the execution of code could somehow be visualized.
Some quick googling lead me to Jeliot – a “Program Visualization application. It visualizes how a Java program is interpreted”.
It’s output is clearly targeted at developers and people learning programming and how interpreters work, thus isn’t really for general consumption.
The actual code itself?
Is there some aesthetic to code itself? The words, while english’ish, is likely to be more confusing than interesting to people. How about the structure of the code? Is there some aesthetic to the way a source file flows, with indentation and line lengths?
How about if we add syntax highlighting to the mix to colorize different groups of words?
I guess my main worry is that people will (understandably) just see the code for the words and not the logic and behaviors it represents. And this might be okay. I guess art isn’t always meant to be understood. But can code be appreciated if it is not understood?
No answers, just questions
I don’t have any answers, but would love to hear thoughts and see examples of how this has been done – if it has. I find it hard to believe that someone more artistically inclined than me hasn’t come up with some great of exhibiting code.