Is programming an art?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Is programming an art?
by on (#82118)
Just wanted to see what you guys thought of this interesting topic.

by on (#82119)
Programming by itself, i.e. writing down an algorithm as a code, it not an art. Designing a program probably may be, but I don't think it is a common thing.

by on (#82120)
I was thinking more of the way it works entirely, not just putting a single algorithm in as a line or two of code.

by on (#82121)
A game at whole could be considered as a complex algoritm, it is not a line or two of code.

by on (#82122)
Yeah, but that's the art part, it's the programmers algorithm. I just think it's fascinating to think of it like that.

by on (#82125)
Is HTML art?

http://www.youtube.com/watch?v=4M2wcyezJT0 (<- old stuff)

by on (#82129)
I believe that creating clever algorithms to efficiently perform the tasks you need is a form of art.

Personally, I have a better sense of accomplishment when I overcome a tough programming task than when I draw a nice set of sprites.

by on (#82131)
tokumaru wrote:
I believe that creating clever algorithms to efficiently perform the tasks you need is a form of art.

Personally, I have a better sense of accomplishment when I overcome a tough programming task than when I draw a nice set of sprites.


Agreed.

by on (#82153)
Programming requires just as much creativity as it does logic, for problem solving. Just because it isn't colorful or musical doesn't mean it isn't art.

by on (#82154)
Programming is much more rules and templates-based than most of things that are considered an art. The same thing could be identically done by many different programmers. This leaves not much place for artistic expression. You can easily change a programmer on a project, end user barely can notice it (only if you change a pro to someone not skilled enough who don't really able to do the job properly). If you change an artist or a musician, it is easier to notice.

Probably everything could be an art, but some things are more limited in possibilites to be an art than other.

Also, to have definitive answer we need to have definition of the art itself, and this is not an easy thing by itself.

by on (#82156)
There isn't much that can't be a form of expression or emotion; especially coming from a human.

Someone could fart while curling their pinky finger, hop, and drink a glass of water to make art.

Someone could program 2 gigabytes worth of code that does absolutely nothing for artistic expression.

It depends on the person and the use of the code. Inherently not all programming or code is art, but it could be if the author intended or someone else classified it as art.

by on (#82168)
reminds me of this

by on (#82170)
Image

by on (#82172)
Interesting... Does that code work though? If you consider that bits 1 through 7 of $4016 can return open bus and Famicom controller data, these could easily screw up previously read button states.

by on (#82173)
RushJet1 wrote:

It's a Triforce. Definitely not a newfag ;-)

by on (#82174)
tokumaru wrote:
Interesting... Does that code work though? If you consider that bits 1 through 7 of $4016 can return open bus and Famicom controller data, these could easily screw up previously read button states.

Art is supposed to make you think!

Image

by on (#82176)
Point of the below rant: Typing code into a machine is not art, it's translation. The design and implementation of a system is very much art, as it reflects the influences, experiences and ideals of the designer. Much the same way that the assembly line worker at the Gibson factory is not considered an artist, but Ted McCarty (the designer of the Les Paul) is considered an artist (who's medium was acoustic engineering, and who's canvas was a guitar).

Shiru wrote:
Programming is much more rules and templates-based than most of things that are considered an art. The same thing could be identically done by many different programmers.


Are you a manager? I hope not :D

That's the kind of attitude that is very detrimental to software engineering as a whole. No two people are going to implement something identically if they actually design the thing.

If you give two people the same psuedo-code (which is what my company thinks a technical design document aught to consist of) and ask them to implement that pseudo-code in the same language, then yes, the code they produce will be almost identical. But at that point the programmer is the one writing the pseudo-code. The two people are just translators.

And I suppose that's what really chaps my butt about the attitude many people have towards software development. Programmers are often expected to be little more than software translators.

by on (#82177)
Very interesting! :twisted:

Shiru wrote:
Programming is much more rules and templates-based than most of things that are considered an art. The same thing could be identically done by many different programmers. This leaves not much place for artistic expression. You can easily change a programmer on a project, end user barely can notice it (only if you change a pro to someone not skilled enough who don't really able to do the job properly). If you change an artist or a musician, it is easier to notice.

That depends on who's appreciating the work. Most people can judge visual and audio content, but it takes a programmer to appreciate the work of another. I just love to see clever solutions to logic problems, like when someone rewrites a 20-line subroutine in just 5 lines, using less RAM and less CPU time.

by on (#82178)
I love it when someone re-implements a 5-line subroutine in 20 lines that are more readable and maintainable. But then again I'm in business software :D

by on (#82179)
I never said anything about sacrificing readability and maintainability, as I value those things as well.

by on (#82180)
Your right, bad assumption on my part. More verbose does not mean more readable.

by on (#82183)
In modern pro development there is no such a thing as design on the fly. You have specs: if user inputs 5, output should be 10. There could be difference in implementation, but the result is the same regardless of programmer. If result is not the same, a programmer is failed to do his job.

I guess that some people would like to consider programming at whole as an art as a prove that they are special and unique, that's why they defend this concept regardless of any arguments, without attempts to actually analyze it, and despite it is a complex question without a clear answer.

If we take a definition of the art from english wikipedia:

Quote:
Traditionally, the term art was used to refer to any skill or mastery.

With this definition programming could be an art easily.

Quote:
This conception changed during the Romantic period, when art came to be seen as "a special faculty of the human mind to be classified with religion and science".[1] Generally, art is made with the intention of stimulating thoughts and emotions.

With this definition programming has much less chances to be an art. Maybe certain things on demoscene or some other abstract programming-related art.

In russian wikipedia there are two extra definitions:

Quote:
As the result of evolution of social aesthetic standarts and values, any activity that leads to creation of aesthetically expressive forms could be now considered an art

Most of the time programmers aren't doing that. The triangle example is probably fails under this definition.

Quote:
In scale of the whole society, the art is a special kind of understanding and reflection of reality, a form of an artistic activity of social consciousness, and part of spiritual culture of a human and humanity at whole, multiform result of all the creative activity of all generations

I don't think this really means anything certain, despite being supported by few sources. It only demonstates that people really aren't agreed what the art is. This definition is even recursive, 'an art is .. something artistic'.


My vision is that the initial question incorrect, and leads to more confusion. Is programming an art in general? Not all the programming is an art, so answer is no, but some programming could be, so answer is yes. Is programming could be an art? Yes, definitely.

by on (#82184)
Shiru,

I don't mean designing on the fly, I mean designing in general. I feel that the design of a system is an expression of the designer, and therefor artful under some definitions.

Really I agree with your point that the question is flawed. Programming itself is not the art form, just as applying paint to canvas is not in itself artistic. The programs we create and the paintings we paint are what can be artistic.

by on (#82194)
qbradq wrote:
I feel that the design of a system is an expression of the designer,


Which is why the 2600 design is retarded...

by on (#82195)
3gengames wrote:
Which is why the 2600 design is retarded...
Why don't you try to make something even half as functional in just 6000 transistors, hmmmm?

by on (#82197)
lidnariq wrote:
3gengames wrote:
Which is why the 2600 design is retarded...
Why don't you try to make something even half as functional in just 6000 transistors, hmmmm?


The programmers made it functional....

by on (#82198)
Programming is art? I think partially is

by on (#82199)
3gengames wrote:
qbradq wrote:
I feel that the design of a system is an expression of the designer,


Which is why the 2600 design is retarded...


!! WARNING !! THREAD HIJACK DETECTED

by on (#82201)
RushJet1 wrote:
3gengames wrote:
qbradq wrote:
I feel that the design of a system is an expression of the designer,


Which is why the 2600 design is retarded...


!! WARNING !! THREAD HIJACK DETECTED


Haha yeah, should probably avoid that. :P But anyway, I guess programming it's self isn't art, but the output can be, although I do believe the code created is sometimes art no matter what the output is.

by on (#82203)
UncleSporky wrote:
Image


And then someone complains when I post an image... much like this one to illustrate a situation. Funny or seriously... Aw! :(

by on (#82206)
UncleSporky wrote:
tokumaru wrote:
Interesting... Does that code work though? If you consider that bits 1 through 7 of $4016 can return open bus and Famicom controller data, these could easily screw up previously read button states.

Art is supposed to make you think!

Image


You can't STX #8.

by on (#82207)
And you don't even need to use X when reading the controller anyway; you can use the result variable itself as the counter. Now that's art, if I do say so myself.

by on (#82208)
tepples wrote:
And you don't even need to use X when reading the controller anyway; you can use the result variable itself as the counter. Now that's art, if I do say so myself.


I use X to see which controller I'm reading, I consider that art too. :lol: So many ways to do one thing, it's insane. :P

by on (#82211)
I just grabbed it from an old topic I made ages ago, I'm not surprised it's full of errors. It's just to be silly. :P

by on (#82212)
Funny pic. :)

Yeah, I think this discussion (inevitably with this kind of question) quickly becomes kind of a semantics debate. What is art, what is "not art", and what is programming.

My philosophy is that art and science are 2 sides of the same coin.. or think of it as a yin-yang, if that makes more sense. You can't really have one without the other, I think. A musician could hardly write a song without using the concepts left behind by Pythagoras. A painter couldn't paint without someone having used a method to discover what materials can create what color.

And we can hardly have science without creating a hypothesis (sort of an expression of belief, I suppose), and inventing experiments to prove or disprove them. Surely there is a bit of art in those processes. Otherwise someone could create a computer program to create hypothesis and design experiments, and eventually we would know the answer to everything - that probably won't happen. :)

So yeah, just like no one will claim that creating a soundtrack to an NES game is a science, it's able to work because it's using a very specific bit of audio code and/or look-up tables. And in the same way, programming a game requires a good deal of artistic vision to design it in the first place. If it can't be said that implementing physics in code is art (or maybe it can?), or writing a PPU scroller, for sure applying those physics or scroller into the gameplay is an art.

So I've abstained from voting, because I feel like I could vote either way. (but I'd tend towards yes, because of the implications of asking here, where we program games)

by on (#82213)
UncleSporky wrote:
I just grabbed it from an old topic I made ages ago, I'm not surprised it's full of errors. It's just to be silly. :P


I love the quote bubble. That guy is acting like ASM programming is common knowledge.

by on (#82223)
design a full system from scratch is, IMHO, a form a art. anyway, which are the feelings or emotions behind Andy Warhol's soup cans or Jackson Pollock's pictures? i think that everything that came up from human's creation is a form of art, and programming it's all about creation, coding is just the last touch. i bet that there's a lot of people in this forum who are better programmer than Bill Gates, but he's on top because i had lots of great ideas, and that's because he was creative. so, voted for YES (:

by on (#82226)
Code:
not_drunk_yet:
   
   inc good_times
   lda good_times

   adc #BEER
   
   sta in_stomach   

   ; TODO: Control yourself
   
   bvc not_drunk_yet
throw_up:

   jmp clean_the_mess


by on (#82228)
psycopathicteen wrote:
I love the quote bubble. That guy is acting like ASM programming is common knowledge.

If you appreciate that kind of humor, you'll love xkcd.

by on (#82235)
Banshaku wrote:
Code:
not_drunk_yet:
   
   inc good_times
   lda good_times

   adc #BEER
   
   sta in_stomach   

   ; TODO: Control yourself
   
   bvc not_drunk_yet
throw_up:

   jmp clean_the_mess


This reminds me of last night (sans the "throw_up" part, fortunately!)... =)

Although tonight might not be so different either! XD

by on (#82250)
I just made that up fast based on the comment before that "art should make you think".

If you look at the code, it will only "throw_up" on an "overflow" flag. It was on purpose. But it would always overflow because it couldn't "control itself" because it was never implemented, or in other words, has no self control.

At the end I wanted to put an rts after the throw_up label to say that it could actually end up out of control since it was not a function and we don't know what is the last value on the stack, so the the rest of the job (in that case cleaning) would have never been done but it would have been a far fetch. But still.

As for the actual question, this is an eternal debate that will go nowhere so I better not get into it.

by on (#82252)
Banshaku wrote:
At the end I wanted to put an rts after the throw_up label to say that it could actually end up out of control since it was not a function and we don't know what is the last value on the stack

Drunk people often have trouble remembering to where they are supposed to go, so a random value at the top of the stack is just perfect! =)

by on (#82256)
You guys are nuts. ;)

by on (#82308)
tokumaru wrote:
Banshaku wrote:
At the end I wanted to put an rts after the throw_up label to say that it could actually end up out of control since it was not a function and we don't know what is the last value on the stack

Drunk people often have trouble remembering to where they are supposed to go, so a random value at the top of the stack is just perfect! =)


lol, muito engraçado xD

by on (#82316)
Here's my final version then:

Code:
;
; It's time to party!
; V0.0001a
;
not_drunk_yet:
   
   inc good_times
   lda good_times

   adc #BEER
   
   sta in_stomach   

   ; TODO: Control yourself
   
   bvc not_drunk_yet
throw_up:

   ; Ohhhh.... Huupp!
   pop

   ; I.. I'@3m fai!iine,..thhajjk ,yooyu.
   rts


Reflects my last comment.

by on (#82319)
Image

by on (#82321)
Doh! I'm mixing my assembler.. Getting rusty when you don't code for a while! "pla" sounds less interesting in that context, hmmm... I won't update my previous post since it will break the thread :)

I guess this image can be created from some automated website?

by on (#82371)
In my honest opinion programming is not an art, however making a video game is.

UncleSporky wrote:
Image

stx #8 ???

by on (#82374)
Banshaku wrote:
I guess this image can be created from some automated website?

I'm not sure, I did mine manually (and messed up so the text isn't properly aligned to the frame...)

by on (#82376)
Bregalad wrote:
stx #8 ???

This has been pointed out already.

by on (#82381)
Quote:
design a full system from scratch is, IMHO, a form a art

I agree, however this doesn't make programing an art.

Programing inself is not an art, but it can be seen a tool to do art. Like math, which is just a tool that can be used for other purposes.

Quote:
And you don't even need to use X when reading the controller anyway; you can use the result variable itself as the counter. Now that's art, if I do say so myself.

I disagree. A clever optimization is not art. That being said, a good video game would be a piece of art even without this kind of clever optimisation, even with goofy unoptimized high-level code.