An Artist's Approach to Engineering
What makes art art?
Everyone asks this question and on one ever agrees, so I’ll just pick one characteristic that I see in art and focus on that.
Let’s talk about art’s ability to capture a moment in time, in the physical world, the culture of a society, of a subgroup, the emotions of a person or some other mental landscape. Whatever it is, no matter how dynamic it is, it’s a slice of a certain perspective belonging to a slice of time. You might disagree, but I think it applies broadly to most if not all of what I’ve ever seen called art.
The Connection to Software
Previously, I talked about how software engineering influences my art, but it goes the other way around to for me. I developed both interests in parallel.
Does software capture a moment in time?
Well it’s easy to argue that design does. Take iOS’ design evolution as an example: Each reflect a different attitude of what’s intuitive, what’s modern, what ever feeling Apple wanted you to have about their products. Whatever came out of the designer’s perspective on interaction and feel stayed for years before a big evolution, like a Pokemon. And I guess I could argue that design and code are strongly linked; for an independent developer, both have to be in your mind at all times.
Ok, but what about standalone code?
Yep, that too. Every time I write a piece of code and walk away for a week, I have to interpret it to figure out what’s going on, just like I have to interpret a Picasso, just with only one right answer. It captured a moment of my thought process at the time.
In all seriousness, though, just as how professors call math proofs “beautiful,” a person’s unique approach to solving a particular problem within software, with a specific language can be beautiful too. Or at least intriguing.
Does the desire to capture a moment in time affect how we approach code? Well, ideally no. The purpose of software is to solve a problem for as long as possible, not to express yourself. Design is meant to be as intutive and communicative as ever. However, the human behind the brush or keyboard and the world behind the human will inevitably leave their mark, evolve over time, and leave that piece of expression behind (that’s why software updates are great…).
Can software make use of that inevitable expressiveness? Maybe not enterprise, definitely a random side project website, and maybe something like video games. When I designed AI for VGDev at Georgia Tech, every if statement I wrote required me to think about how I wanted software to react to the human playing it, and how the player should feel at all times. I didn’t do art for the game, just good ol’ creative code.