I just read Brian’s post titled “The art of science (or the science of art)”, which reminded me of certain discussions I had over dinner at the workshop in South Africa, particularly with Carli Deysel, from ThoughtWorks.
On the very first evening, as we were talking about our mutual aspirations to change the world and help people in our industry (!), she posed the classic question: Is code art? Is there code that can be considered as such?
She seemed surprised to hear that I categorically didn’t think so. After all, we were just talking very passionately about our profession and the creativity and skills it requires; so why not?
I quickly learned that if you try to debate with Carli, you better have a solid point. LOL, she easily crushed my weak attempts to make my case. Luckily, Andrea Provaglio joined the conversation and supported my view. He pointed out that we can certainly find beauty in code. But aesthetic appreciation alone is not sufficient to define something as “Art”.
In hindsight, my biggest grief with defining code as art, is that code has a functional purpose. It is born to be useful; it solves problems; it creates opportunities. Code is like any “how-to” books: it has a function and a limited time-span.
Poetry, on the other side, is (functionally) totally worthless; we don’t “need” it. I can’t read a poetry book to learn how to do something. Yet, some of these books are simply immortal because they force us to reflect on who we are; they deepen our understanding of our human condition; they may even make us cry unexpectedly while truly touching our souls.
In other words:
If writing software is about problem solving, then code will never be art. At best, we (the developers) create beautiful hammers.