I attended a talk at the college I go to that touched a few topics at a high level of how to step up our game from being just a regular programmer to becoming a great one, in which one of the speakers shared his opinion with the public with the question you read on the title...
Yeah, yeah, yeah, I know that we should know about DRY, KISS, SOLID, and a bunch of other principles or best practices to achieve the coding "Valhalla", but... is it true there is absolutely no creativity involved into coding?
The speaker's opinion can be resumed into:
"Things like design patterns and certain rules restrain us (programmers) from doing any kind of art form."
And no, this is not related to what the outcome might be, like a video game or an app, try to focus on the code itself.
Top comments (24)
Oil painting has rules. Poetry has rules. Any art has rules.
Oil painting could be just technical. Poetry can be just technical. Any art can be just a bunch of technical skills that bring no emotion whatsoever.
Coding CAN be a form of art, but it needs a good knowledge to be appreciated. And I say, a good number of developers aren't able to perceive the art behind the code, when they see it.
If coding wasn't an Art, then people wouldn't wouldn't debate about beautiful code. We wouldn't argue about tabs or spaces. We wouldn't debate about readability or extensibility. Coding is very much so an Art. It's just our medium is text. We write novels for the computer.
«We write novels for the computer.»
Love it!
Great answer.
100% agreed
It's like saying that writers are not artists because they follow orthography
Painting requires practiced motor skills, a good sense of how perspective works (so you can either follow it, bend it, or break it in a specific manner), and knowledge of how paint behaves when working with specific brushes, sorts of paint and your canvas.
That's a description of something most people would consider an art. With that I mean to convey that rules, guidelines and requiring certain knowledge isn't at odds with 'art'.
I'd say you're describing a craft, rather than art.
I'm describing (as specific aspect of) painting, which is generally considered an art. That aspect indeed focuses on things most commonly attributed to a craft. As such, craft and art are not mutually exclusive.
I think a lot of people here has already shared a similar opinion here but my answer would be totally yes. I do oil paining, and illustrating, and also computer engineering, and I think similar in each one of those. As someone already said, everything has rules that allows us to interact with the world. I must even say that computers and virtualization allow us to go further.
You can be a coder and repeat what you learn, copy paste and apply some maths, casually. Or on the other hand learn coding as a tool and create. I think it could be an art if the one coding is an artist.
Coding is a craft. It is wrong to talk about ”creativity”: The main characteristic is the amount of intuitive analysis done when you’ve reached certain levels. At this point our normal vocabulary fails us and we talk about beautiful/simple/clear etc in a way that correspond to the intuitive appreciation of the solution rather than fixed rules.
That said, high quality programming work usually has objectively measurable metrics: ease of maintenance (tracking down bugs, adding features), low bug count, good performance even under load etc
It is only creative in the same sense that any craft can be creative.
It is an art in the same way that any craft at sufficient level of mastery becomes an art.
I think that coding is an art. Just like a regular writer, our job requires us to express our intentions through symbols that should ultimately be understood by other human beings.
Refactoring our code so it can be concise and elegant, without losing it's readability (often times increasing it), takes serious skills and practice.
"is it true there is absolutely no creativity involved into coding" - what?
Yes of course there is; I often have to think of creative solutions to satisfy requirements.
Design patterns will only get you so far.
I'm sure it can be art, though what I do in my day to day it's definitely not :-)
An artist programmer that I can think of is Jonathan Harris, he does amazing stuff with programming and data:
and many others: number27.org/works
To me he's an artist using data science, programming and his deep love of humanity to make statements.
Here's a great talk about this from Felienne Hermans: vimeo.com/223985249
Coding is signification, or meaning-making. It can be art; all art is signification of one sort or another and there's no reason to expect the writing of software among all forms of communication to be uniquely disqualified from being art. Writing elegant code is certainly an art.
But design patterns and "rules" (whatever those are) don't prevent artistic expression either. That's like saying the use of the vanishing point to communicate perspective prevents a work from being True Art, or that Real Poetry can't make use of rhyme and meter now that we've discovered blank verse. It's easy to read between the lines the opinion that the true problem with visitors and factories and mappers and realism in representational art and the division of plays into acts and classical symphonies is that they're boring, which is sometimes but by no means always true & in general is the sort of opinion one holds in order to be controversial without putting much more thought into it. With patterns especially: the reason they exist is that they're useful. Intentionally ignoring an appropriate pattern usage can make your code less useful -- and that's an artistic statement not that many people would want to make.
Once one of my high school teachers here in Brazil, said to me that art is something that makes people to question, i suppose that if this is true, art is not about the tools that you choose to do something, is about the meaning that you put on it.
Code can be art.