Art is something that has always captivated me, and still does. To me it represents the most personal thing a human can create. I see it as a way to express our personalities and individuality. And I think we all can appreciate it.

But can programming be classified as art?

I’ve wondered the same thing for a long time. The topic is complex, there are good points in both worlds. According to wikipedia:

Art is a diverse range of human activities in creating visual, auditory or performing artifacts (artworks), expressing the author’s imaginative, conceptual ideas, or technical skill, intended to be appreciated for their beauty or emotional power.

Apparently programming follows this definition: is an activity that produces an artefact, which expresses the author’s specific ideas on how to solve a problem. It is also intended to be appreciated for its beauty. 

Although there exists code that may only be appreciated for its beauty. To give you some examples: the Apollo 11 code or the Adobe Photoshop 1.0.1 code although their historical value may be higher than their value as pieces of art, in its common sense.

Anyway, I think it’s safe to say, programming requires creativity, there are often multiple ways to solve the same specific problem and if you don’t already know the solution, you have to achieve it in your own personal way.

Someone may argue that programming is just communicating in some way with a machine, which effectively has little art in it. Not only that, but nowadays programming it’s more of a necessity, an activity which exists just to produce revenue for someone else. It may be an artefact, but appreciation is not in its purposes.

Another good point I found, is that programming is an evolution of mathematics, which is a purely scientific subject. Although I also think that even mathematics has a lot of beauty in it.

Real-life example

Sure, you can see programming as a purely instrumental thing, that doesn’t involve any form of art whatsoever. But I think that we all have some sense of aesthetics for code. I’ll show you what I mean:

def is_even(x):
    if x % 2 == 0:
        return True
        return False

Let’s say you have this code. It’s a pretty straight-forward solution to a problem: knowing if a number is even or not. Now, consider this code:

def is_even(x):
    return x % 2 == 0

Again, same purpose, but, optimisations and execution speed apart, which of the two do you like more?

The next step

Some problems may only be solved by stepping out of the domain of the problem and connecting it to seemingly unrelated concepts. Programming may not be classifiable as art, although someone has already underlined the importance of integrating arts and science. And I think that it’s a good point, art helps us perceive the world in a different way than the one we’re accustomed to. I think that, overall, it hasn’t to either be art or not. I think that a better approximation of the concept, is that programming is a human skill in which both science and art have the opportunity to be merged together.

What do you think? Is programming an art? Discuss in the group