Skip to content
loading...

Is programming an art?

vyber90 profile image Néstor Llop Guerra github logo ・1 min read  

I asked this question a while ago on some forums out there in the internet, but no programmers answered. The only answers I got were from people who did not ever experience programming at all.

Some people told me that programming is merely the human response to the necessity of algorithms, and not an emotional or expressive thing.
Others said to me that it is not art because it does not stimulate our senses.
Other people even told me that programming does not give a sensitive POV of the world, and thus it is not an art.
On the other hand, there were people who defended that programming is an art as far as the programmer is an artist.

So, let us get to it. DEVelopers out there, do you think programming is an art? Why?

twitter logo DISCUSS (19)
Discussion
markdown guide
 

Programming is not art - just like hitting a stone with a chisel is not art - what we make, that can be art.

a) We can make something that is artistic like a game or a motion graphic - definitely art
b) We can make an algorithm that expresses a fundamental truth and lets you understand the way the world works in another way. That may not be art for the masses, because they lack the ability or desire to perceive the meaning.

 

For me, it's about the process, not the end result. If there are multiple ways to approach the problem and each of them is equally valid, then it's art. If there is one correct way dictated by the laws of physics, then it's engineering.

 

Programming most certainly is an art. If any programming is not art it's the programmer that isn't artistic or rather who is at fault.

That's not the best way to put it but it's one way anyway.

 

The thing about that is that the definition of art is not absolute.

Sure, there’s something about art in the dictionary, but even then there are several definitions for it. Let’s look at one of Merriam-Webster’s definitions:

“The conscious use of skill and creative imagination especially in the production of aesthetic objects”

According to this, programming is, in fact, an art. It’s the use of skill and creative imagination — “especially in the production of aesthetic objects” means that it’s not exclusively in the production of such objects.

So, that said, I think that programming is an art :)

 

If you're going to cite the dictionary - not that I would at all trust M-W or really an American English dictionary (but never mind that) - then you have to also consider that that's not the only definition of art. First what you're getting at:

1 [mass noun] the expression or application of human creative skill and imagination, typically in a visual form such as painting or sculpture, producing works to be appreciated primarily for their beauty or emotional power: the art of the Renaissance | great art is concerned with moral imperfections | she studied art in Paris.
• works produced by human creative skill and imagination: his collection of modern art | [as modifier] : an art critic.
• creative activity resulting in the production of paintings, drawings, or sculpture: she's good at art.

But more importantly:

4 a skill at doing a specified thing, typically one acquired through practice: the art of conversation.

Programming therefore most certainly is art. If you want to talk about aesthetics though art certainly is subjective. When I think of programming being an art I think of the latter definition because that's what naturally comes to mind.

 

I would go as far to say that programming satisfies the "aesthetic object" clause as well. I love looking through some really well crafted code and admiring how good it looks.

 

I definitely consider it an art depending of the way of programming.

I have seen code that do a certain process written in different ways.

An example :

if (condition) {
return object.operationA;
}
else {
return object.operationB;
}

when it can be modified in a cleaner way.

return (condition) ? object.operationA : object.operationB;

Obviously they both do the same, however, in the second way it looks aesthetic, clean. Of course, from my spot such a code i consider a art.

 

My favorite quote on this topic is one that I found on @thepracticaldev 's Instagram account a while ago:

"You might not think that programmers are artists, but programming is an extremely creative profession. It's logic-based creativity." - John Romero.

 

Great question Néstor!

TLDR; Sometimes? Probably not most of the time. You can use programming to create art, programming itself... not really

Disclaimer: I think many devs confuse creativity with art but that's another argument.

Let's start with these two definitions, which I personally agree on (otherwise "everything is art" and there wouldn't be a need for classification or discussion):

Defining art can be difficult. Aestheticians and art philosophers often engage in disputes about how to define art. By its original and broadest definition, art (from the Latin ars, meaning "skill" or "craft") is the product or process of the effective application of a body of knowledge, most often using a set of skills; this meaning is preserved in such phrases as "liberal arts" and "martial arts". However, in the modern use of the word, which rose to prominence after 1750, “art” is commonly understood to be skill used to produce an aesthetic result (Hatcher, 1999).

The second, more narrow, more recent sense of the word “art” is roughly as an abbreviation for creative art or “fine art.” Here we mean that skill is being used to express the artist’s creativity, or to engage the audience’s aesthetic sensibilities.

I would also like to quote some of the history greatest thinkers and artists (so we widen a bit our perspective as they don't always agree with each other):

Art begins with resistance — at the point where resistance is overcome. No human masterpiece has ever been created without great labor.
– André Gide

Art evokes the mystery without which the world would not exist
– René Magritte

and one of my favorite quotes from the ever legendary poet Rilke:

"A work of art is good if it has arisen out of necessity. That is the only way one can judge it. So, dear Sir, I can’t give you any advice but this: to go into yourself and see how deep the place is from which your life flows; at its source you will find the answer to, the question of whether you must create. Accept that answer, just as it is given to you, without trying to interpret it. Perhaps you will discover that you are called to be an artist. Then take that destiny upon yourself, and bear it, its burden and its greatness, without ever asking what reward might come from outside. For the creator must be a world for himself and must find everything in himself and in Nature, to whom his whole life is devoted."
— Rainer Maria Rilke

I'm not an expert in art history but as a "consumer of art" if I were to add my own definition it would be a combination of aesthetics and sparked emotions with this introspective requirement (which can be conscious or not).

An example (in my opinion) of an artist who uses programming as a medium is Jonathan Harris.

How do you decide that whatever you're looking at or listening to is art or not?

 

I don't think any of what you've put here is at odds with the idea that programming is an art unto itself. In fact, I think most of it supports the idea.

By its original and broadest definition, art (from the Latin ars, meaning "skill" or "craft") is the product or process of the effective application of a body of knowledge, most often using a set of skills; this meaning is preserved in such phrases as "liberal arts" and "martial arts". However, in the modern use of the word, which rose to prominence after 1750, “art” is commonly understood to be skill used to produce an aesthetic result (Hatcher, 1999).

The second, more narrow, more recent sense of the word “art” is roughly as an abbreviation for creative art or “fine art.” Here we mean that skill is being used to express the artist’s creativity, or to engage the audience’s aesthetic sensibilities.

The first definition defines programming, itself -- the effective application of a body of knowledge, most often using a set of skills. A programmer is the quintessential knowledge worker, and programming is, without a doubt, a skilled craft.

The second definition doesn't contradict programming as an art, either, unless you also use it to claim that things like writing are not art, either. I think here, though, where things get fuzzy is on who is the audience.

A non-technical end user isn't going to care about the code itself (which is where I think a lot of people are drawing the line on "programming isn't an art, but it can be used to create art"), but they do care about the aesthetics of what the code makes (generally, the UI), even if they don't totally realize it. But a software product isn't just a pretty UI, it is also the expression of one's creativity. That UI is pretty (and engages the audience's aesthetic sensibilities -- or challenges them) because it's an artistic process. In fact, formally-trained designers have a lot of the same training that formally-trained visual artists get.

But there's another audience that most people don't think about it -- other programmers. Those who come after the original author of a given piece of code. For that audience, the code is the aesthetic. Hell, we have entire languages that were written to look good while also doing the work of being a programming language. We have style guides that rival the style manuals for writers in both breadth and depth. And the process for writing code is nearly identical to the process for writing prose (rough draft, edit cycles that include things like removal of superfluous bits and refining other bits, "finished" state).

Let's take a look at this quote that you included, in more depth:

"A work of art is good if it has arisen out of necessity. That is the only way one can judge it. So, dear Sir, I can’t give you any advice but this: to go into yourself and see how deep the place is from which your life flows; at its source you will find the answer to, the question of whether you must create. Accept that answer, just as it is given to you, without trying to interpret it. Perhaps you will discover that you are called to be an artist. Then take that destiny upon yourself, and bear it, its burden and its greatness, without ever asking what reward might come from outside. For the creator must be a world for himself and must find everything in himself and in Nature, to whom his whole life is devoted."
— Rainer Maria Rilke

This is programming, too, especially when considering those who are programmers by passion. This is also where programming overlaps with other forms of art. In both cases, it's an act of creation, and those driven to such fields are driven to make in general. While one can learn how to be an author or a painter or a programmer without having a passion for it, there's a pretty stark difference between them and the ones who are called to it.

 

To add to the discussion, programming has similar problems as art does. Programming can be opinionated, and often can be divided into many -isms, from OOP & FP and different frameworks & languages, to various patterns and indentation style.

 

Hopefully I'm not too late to the party but I actually just thought about this in lieu of binge watching Disney documentaries. I do think its an art. I think programming is very much familiar with the creative process in many ways, where iteration after iteration is a sketch and even when the final product is made, there might be flaws that get taken into account in the next project. And that becomes a cycle.

 

The most fitting definition of poetry I've ever read is Coleridge's: "the best words in the best order." This definition applies equally well to programming.

Not everything written in code is art, but the act of creating something with words is an artistic tool, and beautiful code is art.

 

The best concept of code as art, to me, was expressed in a science fiction book (one of my favorites, and favorite author):

play.google.com/store/books/detail...

There's no way I could summarize it properly (I tend to put the F- back into Art half the time it seems!) You'll have to read it. But there was one part that when the code was visualized to its fullest, it looked like a perfectly rotating piece of DNA. Very cool! But again you can't really get it unless you read it.

 

As a participant/winner of the IOCCC I will say that those who say it's not an art aren't programmers or are very very inexperienced.

No emotion? I have no idea where they get that idea. What about game programmers (I'm one of them)? They think that that involves no emotion when you are creating another world? These people are beyond ignorant - they don't have a clue about human emotion or more likely emotion full stop.

Debugging is an art too.

Basically anyone who thinks programming is not an art isn't in the position to say that programming is not an art and therefore should not be considered worthy of being asked the question.

Simple as that.

 

You may or may not create a literature masterpiece writing in any human language. Same thing apply to programs written in any programming language. It may or may not capture the world's view from the writer, may be elegant, may be aesthetic, may show amid it's lines a sophisticated line of thought or even a great insight through simplicity. It may involve creativity, or be limited... Well... Considering all those points, you may think about it as an art.

 

I think that quality and beautiful software shows great form of art, its output and code along with people and processes.

 

Yes and no.
Anything that requires effort, takes in passion, and is for fun or entertainment purposes to anyone is considered art (atleast to me).

 

Feel the weathered stone
Chiseling is not an art
But sculpting is.

Por favor espera y espero en su pasión.

Classic DEV Post from Sep 23 '17

The Problem With Heroes In Software Development

Being comforted by having a hero on call makes those real problems seem less urgent than they really are.

Néstor Llop Guerra profile image
I am just a 17-year-old boy who loves low level programming and vintage machines