Earlier in the week I went to the annual show of Instep, Durham University’s dance society. My primary reason for attending was to support a friend that was performing, but I had such a enjoyable time from the variety of dance styles that the evening is worthy of a blog post about programming.
I’m currently dividing myself amongst essentially three jobs (each with multiple and simultaneous projects) so I do need to put in chunks of time away from the desk for the sake of rest and for my sanity. Ahh rest, it wasn’t long before I was pulling out a pen to scribble down notes on the back of the programme about a project because a brainwave had occurred while my mind was clear. Programming notes on the programme, there’s some pun opportunities there that we’ll quickly skip past.
Then I started thinking about programming itself, I firmly believe that code can be beautiful like the dances were. No, I’m not talking about the layout of textual characters in a program or language (incidentally, the Whitespace language was conceived in Durham and that’s not even visible to the human eye) or syntax spacing and highlighting. To talk about that beauty would be like the visual beauty of individual dancers not the choreographed and performed dance. There is beauty in how dancers with different strengths and different limitations are used for different parts of the dance and how they are spaced out. Perhaps the troubleshooting I do in the office is much similar to that of the choreographer. Sometimes it takes intimate understanding of your components/dancers, other times you may catch a fresh glimpse of something they can do and receive an epiphany how it can be used in your project, perhaps filling a gap you had troubled over.
Beauty is not the same as perfection. There is a gasp of “wow” at the moment you see how all the parts have come together and fit as if they were always meant to be. When that moment takes place, then beauty exists in the work that was formed. Sometimes I solve a problem and see the beauty in it as I write it in, much like a choreographer might see the beauty when they are happy and ready for full-run practices to begin. Sometimes it’s not until the program is running that I looked back and realised it’s an elegant and beautiful way it runs, like the smiles I saw on the dancers faces showing that they were pleased they were in time with each other and were working as a beautiful piece of art. For my colleagues reading, I’ll add in here that my code isn’t always beautiful and rarely so when I’m working under-pressure. Could beauty exist if every creation was beautiful, is that the difference to perfection?
I don’t expect mine or any other programming code to be in The Baltic art gallery any time soon, so what can I learn from these parallels of beauty? The usual “art” disciplines take inspiration from the world they are in, so is it possible for my programming take inspiration from those arts? Spending time to look at artwork has the potential to be more than just a break to rest, it can show me how items can be molded together and motivate me to seek it in my work. It may sound silly, but even programming needs a muse. Just one of the aspects I watched in dances was the the use of pace, and though the pace dramatically changed throughout a piece there was magically an overall pace in it. I’m already thinking how I can abstract that out and see it happen in what I write.
One last thing I reflected on was listening to the lyrics. I often entertain myself by listening to song lyrics (of any genre) and imagine they are Christian songs, expressing God’s amazing love for us or crying out a challenging relationship with Him. For one of the dance songs, “Never Grow Up” I started thinking how it could be me singing to one of my projects. Probably one of my hacked up prototypes that happily sleeps on my local computer not having to worry about caching or security. To a recent project, “everything is funny…”, an experimentation that I delight in watching, not a serious or commissioned project because “…you can stay this simple”.
I may just be crazy and alone in all I’ve explained. I’ve heard others describe code as beautiful and the first time I didn’t understand the concept of a non-visual beauty. Describing why I find some of my code beautiful can be as hard as finding words to describe the beauty in my eyes of a certain lady, such is the strangeness of life and I’ll try not to be so philosophically deep when I next write here.