loading...

Is programming art?

parkersoftware profile image Parker Software ・5 min read

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

Is programming art? Are those structured, complex blocks of code a stream of creativity that we wouldn’t necessarily recognise as such?

Typically, art is a piece of work that is open to interpretation. It can mean different things to different people; take on a unique significance for every individual subject. But programming is altogether more logical. A computer understands code logically; it can only interpret it in a single way – not based on its experiences or feelings.

So, does this mean that programming and art are distinct, dissimilar disciplines that simply do not overlap? Well, not quite.


Art vs science

Traditionally, programming has been viewed as a science. After all, it is rooted in engineering and computer science. It requires formal reasoning and a methodical process to program successfully. This, then, is why many would never perceive programming as ‘art’. It is a science – knowledge that has been logically arranged and systematised to create accepted ‘laws’.

Art, meanwhile, is not governed by law or logic. When we think of art, it typically creates connotations of the fine arts – painting and sculpture and suchlike. We would generally connect art to visual work created primarily for aesthetic and intellectual enjoyment. (Very) broadly speaking, fine art exists to be appreciated rather than to be put into functional use.

With these commonplace perceptions in mind, it is easy to see why so many would instantly leap to no if questioned, ‘Is programming art?’ The two are as different as a motor and a mosaic.


False dichotomies

So, it’s easy enough to understand how the general perceptions of programming and art have formed. Nonetheless, setting up logical disciplines like programming as an antithesis to art is deeply flawed.

Asking ‘Is programming art or science?’ is like asking ‘Are burgers bun or patty?’ It’s an entirely unnecessary (and rather absurd) distinction that embeds a false dichotomy. Work needn’t be art or science; the two can, and commonly do, overlap. And for many, programming is one such logical field that overlaps into artistry.


Delving deeper

We know the typical connotations of art. But what does the dictionary have to say? There are two main definitions: art as creation and the expression of imagination, and art as skilled craftsmanship. While programming clearly applies to the latter, some don’t recognise its relation to the former.

That, unfortunately, would be short-sighted. Programming is a deep and multi-faceted discipline; one that shares a blend of aspects from science, engineering, and art alike. Yes, programming will always be a logical process, and yes, code will always be framed within a systematic pattern. But that still leaves ample room for creativity.

So, before you ask, ‘Is programming art?’, you need to delve a little deeper into the highly inventive process of writing code.


Logic-based creativity

A programmer starts in the same place as a poet, or a composer, or a painter. That is, they start with nothing and pull something into existence, using their skill and creativity.

And, as with art, there is no single, correct way to program. It’s down to the developer, their brain, and their imagination. The scope of what can be created with code is vast, and it’s all down to the developer to design and architect.

Like creating a symphony, or a literary saga, there are endless options to carry the endeavour from conception to completion successfully. Each programmer will have their own approach; will bring their own unique style to the challenge.

Indeed, a good developer will have a certain ‘feel’ for programming beauty. They will strive to create code that is elegant and aesthetically pleasing. So, programming isn’t just typing logical rules into a screen. Rather, it’s an intersection of logic, individuality, and artistry.


 

 Is programming art?

So, is programming art? Ask anyone who has coded their own program, or chipped away at a software product to make it run smoother and quicker with cleaner code.

Firstly and most obviously, programming is art in a skilled craft sense. Programming can also be used to create art; with code as a resource to create a beautiful end product. But beyond that, on a deeper level, programming is often art as a form.

Programming can be aesthetically beautiful. It is imagination and ingenuity manifest; pure creation branded with each developer’s own individual style. If that’s not art, then what is?


Originally published here: https://www.parkersoftware.com/blog/is-programming-art/

Discussion

pic
Editor guide
 

In Alan Cooper's closing keynote address "How Far Have We Come?" at Agile08 conference, he discuss this very topic.

He ponders whether programming is art, science, engineering, or craft. (It is a fabulous presentation. I highly recommend reading through it.)

 

Great read, thank you!

 

I was a painter, that was art. This is better than art, it's useful.

 

I would also add that we, programmers, do classify things into objects and break up something big in a lot of small pieces and then connect them between each other. We are good in Ran's test and that shows that we are good in abstraction thinking. Of course there's a lot of patterns and programmers often tend to follow them and imply one or another in their projects. However, programmers can encounter new problem, when they can't just get by those pattern. And it's time where coders apply their knowledge from different aspects to solve the problem, to come up with something new, they have never happen to do. If it's not creativity, then I have no idea what it is.

 

"When art comes into being as a form of self-expression, we easily recognize it on museum galleries or concert halls. When it is pursued within a methodology, we call it science.

Programming has elements of both."

Excerpt from:

 

IMO: it's a continuum from pure science (think of formal proofs of validity in Z for safety critical software) to pure art (demoscene contributions, humans riffing on machines for fun). most of us are somewhere in the middle, wanting to express creativity but needing to write unit tests too :)

 

There can be artistry in testing too, but unit testing does seem to be soul destroying. 😉

 

Yes, it's art, cause it allows us to test systems to do something that can be fun or interesting. You can create music and sing rock song that is a fizzbuzz program. You can look at this, it's awesome called The Art of Code which can be mind-blowing. especially the first 1/4 of it.

 

I always think of DHH's thoughts when exploring such ideas:

We're not software engineers, we're software writers.

Thinking about this perspective and having such a mindset does help you write code better, and therefore create better art which benefits all.

 

An art magazine that publishes code as art - code-art.xyz/issues/

 

Nice, not sure they quite get the 'code' bit though - available in print or PDF... perhaps they should take inspiration from PoC||GTFO (NB: NSFW title!), where some of the downloads are executable.. even the PDFs - sheer genius :)

 

Yes, it is more art than science.
You can write the same program in many ways. As in art, there is no clear way to do it. It really depends on who you are and what your craft is.

 

I go by: Not every graphical representation is seen as "art"; some of maths/science is art - I get the same feelings from their contemplation.
Code is maths.